C中关于while循环的一个问题

来源:百度知道 编辑:UC知道 时间:2024/06/10 06:01:09
。。。。。。。。
char stu[50][20];
while(gets(stu[i])!='#')
。。。。。。。。

为什么while的那个语句编译无法通过?应该怎么样才能让输入以‘#’为结束标志结束??

楼主,你好!
你写的这句的意思是gets(stu[i])这件事的返回值与字符#的比较。而gets(stu[i])返回的不是#
直接用while(stu[i]!='#')就可以了。

while(gets(stu)!='#')
函数名: gets
功 能: 从流中取一字符串
用 法: char *gets(char *string);
程序例:

#include <stdio.h>

int main(void)
{
char string[80];

printf("Input a string:");
gets(string);
printf("The string input was: %s\n",
string);
return 0;
}

gets()里的参数就是数组的名,即数组的起始地址

'#'表示单个字符"#"表示符串.
gets(stu[i])表示要输入一个字符串,所以把'#'改为"#".

while(strcmp(gets(stu[i]),"#")!=0)