菜鳥的問題關於c語言中檔案的讀寫操作讀出

2021-05-04 19:47:21 字數 2037 閱讀 8906

1樓:

你這個是大整數加減法運算嘛,c++有沒有學過,我這有一份現成的**,是有stl做的。

#include

#include

#include

using namespace std;

class bigintadd

;//整數輸入函式

istream & operator>>(istream & in,bigintadd & number)

}else //對應有符號數

}//for迴圈對應於含完整的位數的結點

for(size_t j=0;j::const_iterator iter=number.myint.begin();

//指向符號結點

if(*iter==-1)

out<<'-'; //若為負數則輸出「-」,正數不輸出符號

if(++iter==number.myint.end())

out<<0; //對應的數為零

else //輸出每個結點對應的數

else //兩數均為正數

sumsign=1;

}else //兩數符號不同

if(sign1*sign2<0)

if(sz1==sz2) //兩數位數相等

if((*iter1*sign1)+(*iter2*sign2)>0)//正數的絕對值大

}if(iter1==add1.myint.end())//絕對值相等

sumsign=1;

}else //兩數位數不等

if(sz1*sign1+sz2*sign2<0)//負數的位數多

else //正數的位數多

sumsign=1;

//確定運算結果的數值部分

list::reverse_iterator riter1=add1.myint.rbegin();

list::reverse_iterator riter2=add2.myint.rbegin();

//定義兩個反向迭代器

bigintadd sum; //儲存運算結果

short carry=0; //儲存進位值

//兩個數對應相加部分都不為零

else //運算值為正

sum.myint.push_front(temp);

riter1++;

riter2++;

}//add2的對應相加部分為零

while(riter1!=--add1.myint.rend())

else //運算值為正

sum.myint.push_front(temp);

riter1++;

}//add1對應相加部分為零

while(riter2!=--add2.myint.rend())

else //運算值為正

sum.myint.push_front(temp);

riter2++;

}if(carry!=0) //最後一個對應結點的運算結果有進位

sum.myint.push_front(carry);

while(*sum.myint.begin()==0)

sum.myint.pop_front();

//最高位對應結點沒有有效數值時,刪除該結點

sum.myint.push_front(sumsign);

//給結果連結串列加運算結果的符號

return sum;}

2樓:盛哥真帥

下面的太麻煩了吧。。。

關於C語言中的小問題,關於C語言中的一個小問題

其實我覺得你說得對,這個程式編的有些問題,你試著先輸出非空格的字元,程式會跳過 if c 這個判斷,然後lastc c後lastc中就存有你之前輸入的字元,你在輸入空格下次lastc c中就會存有空格。如果你先輸入空格,程式就會崩潰,應為lastc未定義,我用的vs2010已經試過了,你可以試試。望...

關於C語言中棧的問題

可以參考這個 include include include int errorflag typedef structstack int isnumeric char s 判斷 是不是數字 int empty stack s 判斷stack是不是為空 void init stack s 初始化 st...

關於c語言中結構體和檔案讀取輸出問題

當然要錯 改成 fread stu,sizeof stu 1,fp 一個讀資料是讀一條結構體的資料進去 不能分開讀 c語言中對結構體資料格式檔案進行讀取時,必須以二進位制格式開啟檔案,然後按結構體型別變數記憶體塊方式進行資料讀取,相關讀資料命令為fread 函式說明 include size t f...