初学者啥都不懂一边看书一边提问 多则多则
菜鸟啥都不懂一边看书一边提问 多则多则
就这个程序,
#include <stdio.h>
#include <string.h>
#define SIZE 20
#define LIM 2
#define STOP "quit"
int main(void)
{
char input[LIM][SIZE];
int ct = 0;
printf("Enter up to %d lines (type quit to quit):\n", LIM);
while (ct < LIM && gets(input[ct]) != NULL &&
strcmp(input[ct],STOP) != 0)
{
ct++;
}
printf("%d strings entered\n", ct);
return 0;
}
这个条件 gets(input[ct]) != NULL
我们知道:
gets():
原理:一直读取字符直到遇见一个“换行符”,同时在字符串最后生成一个空字符/0,并且丢弃“换行符”.
它使用return关键字返回字符串的地址
函数原型:
char * gets(char *s)
{
...
return (s);
}
我的疑问:在程序运行后如何让 gets(input[ct]) == NULL 。 通过什么操作,我输入了回车 空格 0 ,还是无法满足这个条件
-------------------------------
就像这样:
------------------------------------------------------
Enter up to 2 lines (type quit to quit):
2 strings entered
请按任意键继续. . .
------------------------------------------------------
总而言之 如何利用这个表达式达到和输入quit一样的效果
Enter up to 2 lines (type quit to quit):
quit
0 strings entered
请按任意键继续. . .
------解决方案--------------------
Ctrl+z试试
就这个程序,
#include <stdio.h>
#include <string.h>
#define SIZE 20
#define LIM 2
#define STOP "quit"
int main(void)
{
char input[LIM][SIZE];
int ct = 0;
printf("Enter up to %d lines (type quit to quit):\n", LIM);
while (ct < LIM && gets(input[ct]) != NULL &&
strcmp(input[ct],STOP) != 0)
{
ct++;
}
printf("%d strings entered\n", ct);
return 0;
}
这个条件 gets(input[ct]) != NULL
我们知道:
gets():
原理:一直读取字符直到遇见一个“换行符”,同时在字符串最后生成一个空字符/0,并且丢弃“换行符”.
它使用return关键字返回字符串的地址
函数原型:
char * gets(char *s)
{
...
return (s);
}
我的疑问:在程序运行后如何让 gets(input[ct]) == NULL 。 通过什么操作,我输入了回车 空格 0 ,还是无法满足这个条件
-------------------------------
就像这样:
------------------------------------------------------
Enter up to 2 lines (type quit to quit):
2 strings entered
请按任意键继续. . .
------------------------------------------------------
总而言之 如何利用这个表达式达到和输入quit一样的效果
Enter up to 2 lines (type quit to quit):
quit
0 strings entered
请按任意键继续. . .
------解决方案--------------------
Ctrl+z试试