一个小问题,新手求助
我想输出我所输入的字符个数#include <stdio.h>
void main()
{
char a;
inti=0;
scanf("%c",&a);
while(a!='\n')
{
i++;
}
printf("输入字符个数:%d",i);
}
可以输入数据,按了空格之后没输出结果,光标好像跳到一个空格,好像就输出了一个空格。 根据你的意思,应该是这个样子 #include <stdio.h> int main() { char a; for(int i=0;i<100;i++) { a='\0'; } int i=0; scanf("%s",&a); for(int j=0;j<100;j++) { if(a!='\0') { i++; } } printf("%d",i); } 乞浆 发表于 2015-11-11 21:43
#includeint main() { char a; for(int i=0;i
一定要用数组吗?我直接这样怎么不行,你知道吗? 不行,char a; 只代表一个字符 只代表一个字符 乞浆 发表于 2015-11-11 22:13
不行,char a;
char a;只代表一个字符,不能输入字符串 先改了你的问题代码:把VOID MAIN改成INT MAIN(VOID) 乞浆 发表于 2015-11-11 22:15
char a;只代表一个字符,不能输入字符串
哦!所以要用数组来放字符吗? cccp 发表于 2015-11-11 22:24
先改了你的问题代码:把VOID MAIN改成INT MAIN(VOID)
void main()怎么有问题? 一条迷茫小鱼 发表于 2015-11-12 11:43
void main()怎么有问题?
K&R,ANSI C,C99都没有定义过void main这个“中国制造” 乞浆 发表于 2015-11-11 21:43
#includeint main() { char a; for(int i=0;i
你这代码我试过好像不行,还是没输出。 应该可以,我编译过,可以输出呀,你改一下缩进 void main代表没有返回值的主函数,在 C 和 C++ 中,不接收任何参数也不返回任何信息的函数原型为“void foo(void);”。可能正是因为这个,所以很多人都误认为如果不需要程序返回值时可以把main函数定义成void main(void) 。然而这是错误的!main 函数的返回值应该定义为 int 类型,C 和 C++ 标准中都是这样规定的。虽然在一些编译器中,void main 可以通过编译(如 vc6),但并非所有编译器都支持 void main ,因为标准中从来没有定义过 void main 。g++3.2 中如果 main 函数的返回值不是 int 类型,就根本通不过编译。而 gcc3.2 则会发出警告。所以,如果你想你的程序拥有很好的可移植性,请一定要用 int main 。作为一个初学者要养成好习惯。 可以不用数组
#include<stdio.h>
void main()
{
char a;
inti = 0;
while (a = getchar() != '\n')
{
i++;
}
printf("输入字符个数:%d\n", i);
} 15楼说的对~最好还是用int main(),C98时代有void main的写法,不过C99标准中只有int main(void)和int main(int argc, char *argv[])两种标准写法了~有些编译器是不支持void main()的~最好按规范写~返回值是int型,注意要在main函数结束时写return 0;(虽然不写的话,有些编译器可以自动生成。。) 0xcc 发表于 2015-11-13 20:41
可以不用数组
#include
是不是定义了char a那么a就是要用字符输入getchar()来才行啊。用scanf做输入就要用数组存放每个字符,是这个意思吗? 不是,用getchar是因为比较方便,直接返回读到的字符,scanf的返回值是是赋值成功的数据项~
用scanf可以改成这样:
#include<stdio.h>
void main()
{
char a;
inti = 0;
scanf("%c", &a);//循环之前先读一个字符用于第一次循环条件判断
while ( a!= '\n')
{
i++;
scanf("%c", &a);//每次循环读一个字符用于下次循环条件判断
}
printf("输入字符个数:%d\n", i);
} 0xcc 发表于 2015-11-14 10:46
不是,用getchar是因为比较方便,直接返回读到的字符,scanf的返回值是是赋值成功的数据项~
用scanf可以改 ...
嗯。原来我是没想到要一直通过一个个字符判断,只是想着一串字符来判断。顺便请教一下,那用数组存放数据后再判断数组里的数据是不是有\n就不行吗,或者怎么用数组来做。
页:
[1]
2