1樓:子瓜犬蟲之示單
一邊讀取一邊輸出這個結構不太好吧,每行讀取完成後再輸出則可以在輸出前加入一個判斷:
if (infile.fail())
2樓:
因為你是先判斷,然後讀取資料的。
eof()這個函式是在讀取失敗的時候才為true的,所以讀到最後一行的時候,eof()的值還是0,於是又再次進入迴圈裡了,一執行這句infile>>na;時,讀取失敗,eof()為1,由於讀取失敗,na裡的數值就沒有變,以下的那些變數也是這個道理,所以就多輸出一行了。
你可以用do while 語句。最好之前能判斷檔案是否為空。
3樓:風吹魂
用記事本開啟儲存上面資料的檔案, 按下「↓」方向鍵, 將游標移動到最下面, 你的游標肯定是停留在tjh f這一行的下一行。 這就是出現你這個問題的原因, 按一下退格鍵, 回退到上一行, 儲存檔案, 重新執行程式, 就沒問題了。
簡單的說, 就是你的檔案中有10行, 最後多了一個空行, 所以出現上面的問題。
4樓:匿名使用者
file 多一行空的?
while 是先判斷是否為空 如果你多一行空白 他還是會執行阿 ==
c++關於檔案輸入流read的讀取問題。
5樓:
把ofile.close();移到ifstream ifile("d:\\data.
dat",ios::binary);前就ok!因為寫完檔案後不關閉的話,檔案指標位置指在最後,後面讀開啟後接著這個位置向後讀取資料了,後面並沒有寫入什麼。
6樓:匿名使用者
在開啟讀檔案物件之前先關閉寫檔案物件。
7樓:秒懂百科
read():把引數所指的檔案傳送位元組到指標所指的記憶體中
c++中cin.get()的具體用法
8樓:撒颯颯
cin.get()是保留回車在輸入流佇列中的,
而cin是丟棄回車的。
ch=cin.get();是第一次輸入,因為是剛開始,所以沒有回車保留在輸入流的佇列中。這時你輸入一個字元,然後回車。
get()收到回車或空格或製表符就停止輸入了、此時,輸入流佇列中留下一個回車。
num=cin.get();這是第二次輸入。因為第一次用了get,所以輸入流佇列中有個回車。則get()接受這個回車。又因為get()收到回車或空格或製表符就停止輸入。
所以這一次的輸入就是一個回車,
可以num=cin.get();之前把回車給弄了。你應該想到了。
就用cin.get(),把第一次輸入留下的回車給弄走.則num=cin.
get()就可以正常了。
擴充套件資料
cin執行機制解析:
c++的cin究竟確切含義是什麼呢?很多初學者第一次接觸cin時,當程式執行到cin指令時,程式自動會中斷,然後等待使用者從鍵盤中輸入資訊。只有當使用者輸入完成,按下回車之後,程式才會繼續往下執行。
這個過程很容易讓初學者產生誤會,認為cin就是呼叫電腦鍵盤進行輸入的指令。也是因為這個錯誤的認知,會引起一系列的誤會。例如上文中圖4,雖然程式中有三次cin,但其實我們只要從鍵盤裡輸入一次,就可以完成全部輸入工作,不一定非得分開三次從鍵盤輸入。
cin本質和其它c++變數一樣,它也是一個變數名,它被定義在iostream檔案裡。因此,我們要使用cin功能時,就必須匯入標頭檔案。在c++中,變數名通常實質是代表著一段記憶體區域,
同樣的道理,cin這個變數其實也是對映到一段記憶體區域裡面,我們可以認為cin實際上代表著一段記憶體緩衝區,這段緩衝區的作用是,用於快取從鍵盤輸入的資訊。
9樓:
用法有以下幾種:
1、cin.get()
用法1: cin.get(字元變數名)可以用來接收字元
#include
using namespace std;
main ()
{ char ch;
ch=cin.get(); //或者cin.get(ch);
cout<輸入:jljkljkl
輸出:j
用法2:cin.get(字元陣列名,接收字元數目)用來接收一行字串,可以接收空格
#include
using namespace std;
main ()
{ char a[20];
cin.get(a,20);
cout<輸入:jkl jkl jkl
輸出:jkl jkl jkl
輸入:abcdeabcdeabcdeabcdeabcde (輸入25個字元)
輸出:abcdeabcdeabcdeabcd (接收19個字元+1個'\0')
用法3:cin.get(無引數)沒有引數主要是用於捨棄輸入流中的不需要的字元,或者捨棄回車,彌補cin.get(字元陣列名,接收字元數目)的不足。
10樓:匿名使用者
你執行時想輸入a,會按a 回車,cin.get()會把回車('\n')當作字元(num)讀了,然後``````
char ch;
cin>>ch;
char num;
cin>>num;
這樣(>>)會跳過回車符或者空格
11樓:無極之道我心延
cin不是變數名,什麼玩意兒
12樓:焉從壘
to,together
dev-c++中編寫了一段c程式,其中設定了用檔案進行輸入輸出。
13樓:匿名使用者
-物聯網校企聯盟技術部
求教關於c++檔案輸入流結束判斷
14樓:匿名使用者
讀寫一行用getline(istream,string),檔案讀取判斷結束的方法一般如下:
while(true)
我C盤所有檔案總共40G為什麼屬性裡顯示佔用80G
你將你的檔案大小乘以2就是已經佔用的大小了吧。也就是說,你的c盤裡面可能有一個備份的c盤存在。有兩種可能,一個是您有裝還原精靈。另一種是您開了系統還原 這個建議您可以將其關掉,佔硬碟又沒有什麼作用。關掉系統還原的方法 右擊 我的電腦 屬性,看 系統還原 選項卡下面的 在所有驅動器上關閉系統還原 將其...
c語言從大到小排序,為什麼我寫的程式最後執行輸不出結果
用冒泡法或快速排序法實現,這種if語句判斷容易出錯。c語言 輸入10個數,按由大到小順序排列,下面的程式有問題嗎?什麼問題?為什麼?程式沒問題,bai很標準的冒泡排du 序法!zhi只缺少兩個標頭檔案包含語句dao 你在main函式的前專面加上以下 屬兩句指令 include printf和scan...
為什麼我用搜狗輸入法打字不能選擇候選字了?包括鍵盤的設定欄那排都按下去沒反應,求解!謝謝了
進入應用管理清除一下搜狗輸入法的資料試試 你測試下你的螢幕是不是有失靈的地方 搜狗輸入法打字的時候為什麼候選框沒有候選文字了 有可能是電腦中病毒,或是那個軟體壞了,所以導致資料錯誤,好好檢視一下吧 不太明白是怎麼回事,如果還是沒有解決的話,建議你到搜狗官方論壇上去發帖。是不是按空格才能出備選詞啊?你...