考虑以下代码:
#include"stdio.h"
void main()
{
char ch;
while((ch=getchar())!=EOF)
{
putchar(ch);
}
}无论我输入什么(作为一个句子),它都会在我按回车键后重复。如果我想把整段话放在最后,我该怎么做?因为putchar()只能用于返回单个字符,所以使用putchar()可以做到这一点吗?
发布于 2012-12-30 03:07:22
这是行不通的,因为EOF不适合char。请注意,正确的getchar()返回类型是int。请参见实例this manual page。
如果你想一次读入一整行,你可以使用fgets()进入一个字符缓冲区。不过,我不确定我是否完全理解你想要实现的目标。
发布于 2012-12-30 03:04:39
当从文件读取时,应该使用EOF,因为文件以特殊的EOF(文件结束)结尾,character.You需要在这里使用任何标记来表示输入的结束。
这个程序很有意义,我无法想象它在任何地方的使用情况。因此,重新考虑需求,并相应地更改逻辑。
发布于 2012-12-30 03:11:52
希望这段代码能帮助你
char *buffer;
int i = 255;
buffer = (char *)malloc(i*sizeof(char));
*buffer = getchar();
while ( *buffer != '?' )
{
buffer++;
*buffer = getchar();
}https://stackoverflow.com/questions/14084916
复制相似问题