//待解决
#include<iostream>#include<string>
using namespace std;
void main()
{
char s;
int space=0,table=0,enter=0;
cout<<"Please input a string:"<<endl;
cin>>s;
while(s!=EOF)
{
switch(s)
{
case 32:space++;break;
case 9:table++;break;
case 10:enter++;break;
default:break;
}
cin>>s;
}
cout<<"The numbers of the SPACE is:"<<space<<endl;
cout<<"The numbers of the TABLE is:"<<table<<endl;
cout<<"The numbers of the ENTER is:"<<enter<<endl;
getchar();
}
不明白,怎么做输入呢?本人菜鸟,ctrl z不就表示eof 吗?
追答1.输入ctrl+z要在一行开始,也就是你打完回车之后
2.结束判断不能用你那个要用while(!cin.eof())
3如果你使用getchar()输入,那么你那样判断没问题。
2,3判断方式不同可能是因为cin在c++中的流封装形式的问题
还是不行,能不能帮我在原来的代码上改改,把改后的代码拷给我看看,麻烦了,谢谢大神。
追答#include
#include
using namespace std;
void main()
{
char s;
int space=0,table=0,enter=0;
cout<<"Please input a string:"<<endl;
s=getchar();
while(s!=EOF)
{
switch(s)
{
case 32:space++;break;
case 9:table++;break;
case 10:enter++;break;
default:break;
}
s=getchar();
}
cout<<"The numbers of the SPACE is:"<<space<<endl;
cout<<"The numbers of the TABLE is:"<<table<<endl;
cout<<"The numbers of the ENTER is:"<<enter<<endl;
}
cin不识别空格之类的符号,我之前没看你的代码内容,都没注意这个问题。改成getchar读数就好了,记得ctrl+z要在新的一行输入
C++大神们帮忙看下程序哪里出问题了(统计空格制表符和换行符的个数...
定义的类型有问题 char 只是1个字符长度,你输入一行数据回车后其实它只接受到了第一个字符 就是f 然后ctrl+z 用断点跟踪值为-52 EOF的值是-1
编写一个统计空格,制表符与换行符个数的程序.我编译的怎么会是这个结果...
while((c=getchar())!=EOF){ 这一行改成 while((a=getchar()!=eof){
c语言初学者,统计空格、制表符和换行符个数程序问题
include <stdio.h>int main(void){int a=0,b=0,c=0;char ch;while((ch=getchar())!=EOF){if(ch==' ')a++;else if(ch=='\\t')b++;else if(ch=='\\n')c++;}printf("%d\\n%d\\n%d",a,b,c);return 0;}windows系统默认 ctrl+z 是终止符 ...
关于C语言的问题,编译一个程序,统计输入的空格符、制表符和回车符的...
程序里不少错误我就不说了,你编译的时候会有错误提示的。就你的if和while来说,if跟着的条件是先判定且只判定一次,while更着的条件是多次判定,直到判定为False
C++中有关水平制表符的问题
制表符相当于键盘上按下TAB键之间的距离,也称为空白符。!!!空白符只在字符常量和字符串常量中起作用。在其它地方出现时,只起间隔作用, 编译程序对它们忽略。!!!因此在程序中使用空白符与否,对程序的编译不发生影响,但在程序中适当的地方使用空白符将增加程序的清晰性和可读性。
c语言编写一个统计空格、制表符与换行符个数的程序
int a,b,c,d; \/*b代表空格,c代表制表符,d代表换行符*\/ b=0;c=0;d=0; \/*intilized*\/ while ((a = getchar()) != EOF){ if (a ==' ')\/\/这里是输入的a进行比较,不是bcd。不然就一直是0了 b++;if (a == '\\t')c++;if (a == '\\n')d++;} printf("空格%3d...
编写一个统计空格、制表符与换行符个数的程序
hs = 0,kgs=0,zfbs=0; \/* 初始化 *\/ while((c = getchar()) != '#'){ if(c == '\\n')++hs;if(c == ' ')++kgs;if(c == '\\t')++zfbs;} printf("%d %d %d\\n",hs,kgs,zfbs); \/* zbfs改为zfbs *\/ } \/* nl,cl,bl 可能是代表行数,空格数,制表符数的...
c++从键盘上输入一串字符,统计其中字母字符,数字字符,其他
在C++编程中,使用istream类的get()成员函数从键盘输入一串字符时,可以对输入数据进行分类统计。首先,了解get()函数的基本用法,其原型为int get();此函数从输入流读入一个字符,返回值为字符的ASCII码。当读取到输入流结束时,返回值为EOF,即End of File的缩写,其值为-1。在实际应用中,get()...
统计空格、制表符与换行符个数的程序
if (c == "\\n")改为 if (c == '\\n')
C++怎么输入空白字符,比如:换行符,空格,制表符
换行是 '\\n'空格 " "制表 '\\t'