[英]Program in C++ doesn't stop on if(scanf()==EOF)break;
我的C ++程序不會在if(scanf()==EOF)break;
停止if(scanf()==EOF)break;
,下面是我的程序示意圖,例如輸入:
X XjhgXjhX
給出輸出:
jhgjh
也就是說-它會打印除X
之外的所有字符,但不會在Ctrl+Z
上停止。
using namespace std;
int main()
{
char str[100]={0},znak,forbd;
int i=0,j=0;
while(true)
{
i=0;
j=0;
if(scanf("%c",&forbd)==EOF)
break;
if(scanf("%c",&znak)==EOF)
break;
while(znak!='\n')
{
if(forbd!=znak && znak!=' ')
{
str[i]=znak;
i++;
//cout<<i<<"\n";
}
if(scanf("%c",&znak)==EOF)
break;
}
while(j<i)
{
printf("%c",str[j]);
j++;
}
printf("%c",'\n');
}
return 0;
}
我不想使用cin
,因為閱讀\\n
有麻煩。
好的,我要使用iostream
代替cstdio
,代碼為if(cin.peek()=='\\n')break;
檢測行尾,這解決了問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.