Tag: getchar

getchar()每隔一次只调用一次

使用Ch标准解释器时, getchar()仅运行每隔一行。 C:/> char a = getchar(); C:/> char b = getchar(); b C:/> char c = getchar(); C:/> char d = getchar(); d 我在使用scanf(“%c”, &a)时遇到了同样的问题; 在Vim中,语句被跳过。 printf(“\nType of Something\nA for SomethingA\nB for SomethingB ” “\nC for SomethingC\n\nSelect (A,B,C) > “); char letter = getchar(); // This statement gets skipped return 0;

使用getchar立即检索击键

我正在尝试使用getchar()从键盘一次检索1次击键。 虽然它这样做,我遇到的问题是不立即发送它,它等待按下回车键然后它从缓冲区一次读取1个字符。 int main(){ char c = getchar(); putchar(c); return 0; } 当从键盘按下时,如何立即读取每次击键? 谢谢

scanf扫描后从输入中删除了什么?

我经历了很多问题,博客和书籍,但我想我无法正确地解决问题。 scanf扫描后做了什么? 它读取除了空格,制表符和换行符之外的所有内容,但它对换行有什么作用? 扫描输入后,我无法以任何方式删除换行符。 例如,将此视为输入: – 五 ABCDEFGH 现在,我已将5扫描为整数, scanf(“%d”, &i); 但是如何删除’\ n’以便一次读取一个字符前面的所有内容? 我想用: – while((c=getchar())!=’\n’){//Do something} ‘\ n’应该是字符串之后的那个,但是getchar()在5之后得到一个并且循环在甚至运行一次之前终止。 我想我只是错过了一个小技巧。 scanf(“%d”, &i); while((c=getchar())!=’\n’){ //Do something with the character } 输入文件:- 五 ABCDEF 期待while循环运行,而它不运行。 因为它在5.之后捕获’\ n’。我尝试在scanf()和while()之间添加getchar(),但是程序卡住并且什么都不做。

确定EOF表达

我需要validation表达式getchar() ! = EOF getchar() ! = EOF为0或1 。 我目前的代码: #include int main (int argc, char *argv[]) { int c; while (( c= getchar()) != EOF) { printf(“%d “, c != EOF); putchar(c); } printf(“\n%d\n”, c != EOF); } 当我尝试运行时,我得到了 98980980 1 91 81 91 81 01 91 81 01 我不确定我是否做对了。 编辑: 好的问题实际上是“如何生成EOF”,解决方法是按ctrl + D.

getchar()在C中给出输出

该计划应该做什么, #include main() { getchar(); } 我希望它能显示一个空白屏幕,直到我敲击键盘上的任何字符。 但它的作用很奇怪。 它会显示我按下的内容。 它永远不会终止,直到我按Enter键。 据我所知,getchar()应该只读一个字符。 它不应该输出任何东西。 为什么要打印我输入的每个字符? 编辑: 为什么getchar()在读取一个字符后停止,例如在此代码中: #include main() { getchar(); printf(“Done”); } 阅读一个字符后,程序应打印完成。

对getchar和scanf感到困惑

我对getchar()和scanf()的使用感到困惑。 这两者有什么区别? 我知道scanf() [和family]从用户[或文件]中逐个字符地获取并将其保存到变量中,但它会立即执行此操作还是在按下某些内容( Enter )后执行此操作? 我真的不明白这段代码,我看到很多代码使用了getchar() ,它们都让你在屏幕上输入你想要的任何内容并且没有响应,但是当你按enter键时它会退出。 int j, ch; printf(“please enter a number : \n”); while (scanf(“%i”, &j) != 1) { while((ch = getchar()) != ‘\n’) ; printf(“enter an integer: “); } 在这段代码中我不能用scanf()来逐个字符地获取并测试它吗? 此外,这条线是什么意思? scanf(“%i”, &j) != 1 因为当我按下1时,按下2时它没有什么不同? 这件作品是做什么的? 当这条线发生的时候? printf(“enter an integer: “); 因为它永远不会发生

在C中跳过了getchar()和scanf()

我目前正在编写一个程序,将一个文件的文本复制或附加到另一个文件中。 当提示用户是否要覆盖或追加文件时,我的问题就出现了,我们都跳过了scanf()和getchar()。 我尝试过使用getchar()和scanf()以及fflush(stdin)的多种组合,并确保我打开的所有文件都很接近,但我仍然无法输入选择。 包含第一个提示的代码的特定部分在这里。 `/****************PROMPT FOR OVERWRITE****************/ printf(“Would you like to overwrite the Destination File?\n”); printf(“1=NO,2=YES=”); scanf(“%d”, &overwriteAnswer); if(overwriteAnswer == 2) { ` 这个scanf()或者当我使用getChar()时,它只是被跳过,并且每次执行代码时通常都会填充不同的负数。 完整代码如下 if((infile = open(argv[1], O_RDONLY)) == 0) { /****************INPUT FILE OPENED****************/ printf(“%s open\n”,argv[1]); if ((outfile = access(argv[1], F_OK)) == 0 ) { /****************PROMPT FOR OVERWRITE****************/ printf(“Would you like to overwrite the […]

字数统计程序 – stdin

对于以下问题 , 编写一个程序,将英文文本读入数据结尾(类型控制-D表示终端数据结束,见下文检测),并打印字长计数,即长度字总数发生了1次,长度为2次,依此类推。 将单词定义为字母字符序列。 您应该允许最多25个字母的单词长度。 典型输出应该是这样的: length 1 : 10 occurrences length 2 : 19 occurrences length 3 : 127 occurrences length 4 : 0 occurrences length 5 : 18 occurrences …. 要读取数据结尾的字符,请参阅上述问题。 这是我的工作解决方案, #include int main(void){ char ch; short wordCount[20] = {0}; int count = 0; while(ch = getchar(), ch >= 0){ if(ch == […]

是getchar()和putchar()函数还是宏?

我提到了两个可靠的信息来源,两者似乎对同一事物有不同的定义: http://www.cplusplus.com/reference/clibr%E2%80%A6 http://www.ocf.berkeley.edu/~pad/tigcc/doc/html/stdio_fputchar.html 第一个来源说putchar()是一个函数,就像getchar() ,但在第二个链接中它表示putchar()是一个宏。 我的书说getchar()是一个宏。 哪个是对的?

使用getchar从命令行参数编码程序,并使用putchar发送到解码

所以我正在尝试制作编码/解码程序。 到目前为止,我陷入了编码部分。 我必须能够从命令行参数中获取消息,并使用种子随机数对其进行编码。 该数字将由用户作为第一个参数给出。 我的想法是从getchar获取int并只是添加随机数结果。 然后我想把它恢复到标准输出,以便另一个程序可以将其作为参数读取,以使用相同的种子对其进行解码。 到目前为止,我无法让putchar正常工作。 关于我应该解决或关注什么的任何想法? 提前致谢! #include #include int main(int argc, char *argv[]) { int pin, charin, charout; // this verifies that a key was given at for the first argument if (atoi(argv[1]) == 0) { printf(“ERROR, no key was found..”); return 0; } else { pin = atoi(argv[1]) % 27; // […]