Tag: getchar

澄清需要关于getchar()和换行符

我对使用getchar()从用户读取字符input有疑问。 char char1, char2; char1 = getchar(); char2 = getchar(); 我需要从用户input2字符。 在这种情况下,如果用户input字符'A'后跟一个newline ,然后input字符'B' ,那么存储在char2将是换行符还是字符'B' ? 我在Windows上的CodeBlocks上试过,而char2实际上存储了换行符,但是我打算存储字符'B' 。 我只想知道预期的行为是什么,是否依赖于编译器? 如果是这样,涡轮C和鸣响之间有什么区别呢?

setvbuf无法使stdin无缓冲

我的主要目的是让getchar返回一个字符,而不是等待ENTER键。 我试过这个 int main() { setvbuf(stdin,NULL,_IONBF,0); getchar(); return 0; } 比较这与setvbuf的原型 setvbuf ( FILE * stream, char * buffer, int mode, size_t size ); 它应该将stdin设置为无缓冲模式。 但仍然getchar()不断等待ENTER 我见过这样的相关职位 在C中读取字符时打印 这是build议替代方法使stdin无缓冲。 但我很好奇,知道为什么setvbuf方法不起作用

为什么getchar()等待我在scanf()之后按回车?

我正在学习C,我正在使用“getchar()”来停止命令窗口,所以我可以看到正在做的练习,但它不起作用。 inheritance人样本: #include <stdio.h> int main() { int value; printf("1. option 1.\n2. option 2.\n3. option 3.\n4. Exit\n\nMake an option: "); scanf("%d", &value); switch (value) { case 1: printf("you selected the option 1."); break; case 2: printf("you selected the option 2."); break; case 3: printf("you selected the option 3."); break; case 4: printf("goodbye"); break; default: printf("thats […]

如何避免按下input任何getchar()

这是C编程语言的“novato”问题: 在下一个代码中: #include<stdio.h> int main(void){ int c; while((c=getchar())!= EOF) putchar(c); return 0; } 我必须按Enter键打印所有使用getcharinput的字母,但是我不想这样做,我想要做的就是按下该字母,然后立即看到我重复引入的字母,而不按Enter键 。 例如,如果我按下字母“a”,我想在旁边看到另一个“a”,依此类推: aabbccddeeff….. 但是当我按下“a”时什么都没有发生,我可以写其他字母,只有当我按下回车键时才会出现副本: abcdef abcdef 我该怎么做? 我在Ubuntu下使用命令cc -o example example.c进行编译。