C++:想要输出文件中的内容,这样为什么会陷入死循环?求助
int main(void){
ifstream in("number.txt", ios::in);
if(!in)
{
cout << "文件打开失败!" << endl;
exit(EXIT_FAILURE);
}
char ch;
char ch1;
while(in >> ch)
{
while(in.peek() == ' ' || '\n')
{
ch1 = in.get();
cout << ch1;
}
cout << ch; //这一句系统警告永远无法被执行
}
cout << endl;
in.close();
return 0;
}
{:10_266:} 求助求助 while(in.peek() == ' ' || '\n') 人造人 发表于 2020-3-31 17:04
感谢回复,但是这样还是不对,还是相同的问题。 NeverForgetC 发表于 2020-3-31 21:26
感谢回复,但是这样还是不对,还是相同的问题。
C语言中的逻辑或运算符可以这样用?
while(in.peek() == ' ' || '\n') 这里有点问题,并且你while循环里面的操作看不懂啥意思
除此之外,你的代码是没有问题的,可能哪里设置不对? zhanghh0624 发表于 2020-3-31 22:30
while(in.peek() == ' ' || '\n') 这里有点问题,并且你while循环里面的操作看不懂啥意思
除此之外,你的 ...
就是想从文件中读取数据,文件中的数据比如是:
I Have
flower
river
这样的话该怎么把空格以及换行显示出来呢? 人造人 发表于 2020-3-31 22:22
C语言中的逻辑或运算符可以这样用?
就是想从文件中读取数据,文件中的数据比如是:
I Have
flower
river
这样的话该怎么把空格以及换行显示出来呢?
那个while循环是想读取空格和换行符并且把它们显示出来,但是会进入死循环。 本帖最后由 百里狂生 于 2020-4-1 11:55 编辑
while(in.peek() == ' ' || '\n')是错误的表达,应该是 while(in.peek() == ' ' ||in.peek() == '\n')。
while(in.peek() == ' ' || '\n')的意思是in.peek() == ' ' 或者 'n' (‘n'恒为真), 所以while恒为真。
另外 ” cout << ch; //这一句系统警告永远无法被执行“ 这条语句应该放在 空格和换行判断 的前面。不然会先输出ch1。
while(in >> ch)
{
cout << ch; //这一句系统警告永远无法被执行
while(in.peek() == ' ' ||in.peek() == '\n')
{
ch1 = in.get();
cout << ch1;
}
} 百里狂生 发表于 2020-4-1 11:51
while(in.peek() == ' ' || '\n')是错误的表达,应该是 while(in.peek() == ' ' ||in.peek() == '\n')。
...
多谢多谢
页:
[1]