当我试图从stdin
读取时,我遇到了一些麻烦。我想要做的是从stdin
读取未知行,直到引入字符'.'
。你能帮我举几个例子吗?
答案 0 :(得分:4)
不读行...读取字符。
int ch;
while (1) {
ch = getchar();
if ((ch == EOF) || (ch == '.')) break;
/* deal with ch */
}
if (ch == '.') {
/* '.' detected */
}
答案 1 :(得分:1)
你可以使用这样的东西。有更有效的方法,但这可以开始。
#define BUFFER_SIZE 1024
int main(int argc, char *argv[])
{
// declare buffer
char str[BUFFER_SIZE];
// read till .
int idx = 0;
register int cr;
do {
if ((cr = getchar()) == '.' || cr == 0 || cr == EOF)
break;
str[idx] = cr;
} while(++idx != BUFFER_SIZE);
if (idx != BUFFER_SIZE)
{
str[idx] = 0; // 0 terminate string replacing . by end of string
printf("%s", str); // print the string
}
else
{
printf("Buffer overflow");
}
exit(0);
}