如何用getchar函数将数据存如数组?(C语言)

用其他的方法我清楚,但是对getchar这个函数的概念一直很模糊,有哪位高手可以通俗详细的讲解一下:
如果要用getchar将数据存入数组,而且不是输入一个字符按一下回车那种,而是输入一串字符,然后这串字符会全部存入树组;
下面是我的想法,我知道可能是很弱智的错误,高手不要笑我哦~告诉一下小弟该怎么做:
#include<stdio.h>
main()
{
int c,i=0;
char a[1000];
while((c=getchar() != '\n')
a[i++]=c;
………………(后面打印数组的就省略了);

我随便输入了一串字符"alsdjfla“然后就是错误的,
为什么这样是不对的?该怎么做才可以?

////////////////////////////////
我想你下面这句括号的位置可能扩错了。
while((c=getchar() != '\n'))
a[i++]=c;

注意循环里面的括号应该改为;
while((c=getchar())!= '\n')
a[i++]=c;

表达式c=getchar() != '\n'的意思其实是c = (getchar() != '\n'),因为!=的优先级要高于=。
整个程序替你修改如下:
#include<stdio.h>
#include<stdlib.h>
#include<locale>

void main()
{
int c, i=0;
char a[1000];

while((c=getchar()) != '\n')
a[i++] = c;

for (;i < 1000; i++)
a[i] = '\0';
printf("The value is :%s\n", a);

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-06-26
while((c=getchar() != '\n')
a[i++]=c;
改成
while(isgraph(c=getchar()))
a[i++]=c;
相似回答