第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在C++中eof是什么意思?

在C++中eof是什么意思?

C++
撒科打諢 2019-02-08 11:07:03
在C++中eof是什么意思?
查看完整描述

2 回答

?
隔江千里

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊

eof 就是文件結(jié)束
因?yàn)槲募羔樀阶詈笠粋€(gè)字符時(shí)并不會(huì)觸發(fā)eof,再讀一次讀不到數(shù)據(jù)才觸發(fā)eof,這樣c還保留著上一次的數(shù)據(jù),又被輸出一次,peek()方法是讀取文件指針下一個(gè)位置的值,但并不移動(dòng)文件指針,用在這里很合適

#include<iostream>
#include <fstream>
using namespace std;
void main()
{
fstream io;
char c;
io.open ("a.txt",ios::in);
while (io.peek()!=EOF) //這樣判斷
{
io>>c;
cout<<c;
}
cout<<endl;
io.close();
}



查看完整回答
反對(duì) 回復(fù) 2019-03-01
?
慕俠2389804

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊

EOF在C++中的定義為:const int EOF = -1;
它這么定義是有道理的:
舉個(gè)例子來說
int ch; //注意:這里定義了ch是int型的,而不是char型的
while((ch = cin.get()) != EOF)
{
cout << ch;
}
cin.get()是讀取輸入流中的一個(gè)字節(jié),但是時(shí)常忽略的,也是必須注意的是:那些C++的設(shè)計(jì)者們將cin.get()設(shè)計(jì)成返回int型,而不是char型,這不是令人挺奇怪的嗎?感覺char ch = cin.get()比較順其自然吧?原因就是為了能夠使cin.get()能夠返回一個(gè)EOF。
因?yàn)閷?duì)于一個(gè)字節(jié)的長(zhǎng)度,已經(jīng)定義了256個(gè)字符了,即擴(kuò)展的ASCII碼,已經(jīng)不能再弄出一個(gè)字節(jié)表示EOF了,而且對(duì)于上面的程序,我們?nèi)绻?56個(gè)字符都得用,那么拿什么與這些字符比較去結(jié)束這個(gè)循環(huán)呢?
那些設(shè)計(jì)者門將cin.get()讀取的char型提升為一個(gè)int型,那么肯定是正的,然后EOF定義為-1,在windows下的ctrl+z表示輸入EOF,即輸入ctrl+z的時(shí)候cin.get()才等于-1,其余的字符輸入的時(shí)候cin.get()是一個(gè)正數(shù)。這是設(shè)計(jì)者門提供EOF的主要原因。




查看完整回答
反對(duì) 回復(fù) 2019-03-01
  • 2 回答
  • 0 關(guān)注
  • 688 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)