Tag: 输入

在文本文件中扫描到链接列表

我只是在学习链接列表,我必须做一个包含许多部分的任务,但我已经开始了,我需要做的第一件事是将输入文件读入链表。 部分文件是: George Washington, 2345678 John Adams, 3456789 Thomas Jefferson, 4567890 James Madison, 0987654 James Monroe, 9876543 John Quincy Adams, 8765432 并包含总共26行。 我现在要做的只是简单地在文件中读取。 我尝试使用此代码(现在在main中) #include #include struct node{ char name[20]; int id; struct node *next; }*head; int main(void){ struct node *temp; temp = (struct node *)malloc(sizeof(struct node)); head = temp; FILE *ifp; ifp = fopen(“AssignmentOneInput.txt”, […]

Scanf输入转移到下一个scanf

我在这里有一个代码,在输入带空格的字符串时会有一些不需要的行为。 例如print illegal_argument 。 当有多个单词的输入进来时,我希望它只注册第一个单词。 目前发生的是: christian@oblig2 $ print 0 Enter router ID for information > ID: 0, flag: f7, model_length: 13, model: D-Link y6000 它在命令循环中注册第一个用于比较的print 。 但是,而不是scanf提示用户输入下一个输入,而是忽略该操作,并取消用户从前一个scanf输入的第二个字/数字。 我想要发生的是: christian@oblig2 $ print 0 Enter router ID for information > 0 ID: 0, flag: f7, model_length: 13, model: D-link y6000. 一切都按预期工作,但我想知道是否有更简单的方法来做到这一点。 我尝试过使用Strtok,没有太多运气。 char input[256]; printf(“%s@oblig2 $ […]

为什么将scanf()的结果与NULL进行比较会产生编译器警告?

我用C语言写作,我需要阅读输入中的所有内容,但我不知道会收到多少个字符。 我写 while (scanf(“%c”, &read) != NULL) 但是编译器告诉我: [Warning] comparison between pointer and integer ,那么我应该写什么呢?

无需等待即可从用户那里获得输入 – C语言..!

我正在编写一个简单的计时器,它从00s到55s运行,然后再从00开始计数,并一直计数直到用户停止计时。 为此,我为用户提供了两个选项:1。启动和2.重置。 选择第一个运行程序,并选择第二个,因为我认为,将把计时器转为00s并保持在那里。 现在我面临的问题是我希望在不停止计时器的情况下从用户那里获得输入(即,在程序运行时允许用户随时输入2,这样他就可以停止正在进行的计数)。 我试图使用像getch()和scanf()这样的函数,但它们正在停止计时器,这完全破坏了程序。 任何帮助赞赏的人.. !!

我怎么去Flushing STDIN?

我有一个函数(在C中)从用户获取输入,(使用scanf)将它存储在unsigned int中,并将输入返回给处理它的其他函数: unsigned int input(void) { unsigned int uin; scanf(“%u”, &uin); return val; } 我想知道,因为我应该刷新标准输入,我想使用getc,vis-a-vis使用while循环: while (getc != ‘\n’) { … } 但是,我不确定如何: A)在getc中执行操作,就像我应该如何处理检查并将值连接到每个获得的字符,或者,无论我是否要getc,然后从那里连接,完全删除scanf。 B)这是否是最合适的方式。 有些善良的人可以给我一些提示和指示:) 谢谢。

C中的简单循环和字符串长度

我是新手C.在Visual Studio 2015中编写,我试图通过使用fgets安全地提示用户输入字符串。 我想使用fgets来获取字符串,检查字符串是否太长,并重新启动用户,直到他们输入一个好的字符串。 这是我的代码 /* * Nick Gilbert * COS317 Lab 2 Task 2 */ #include “stdafx.h” int main() { char str[10]; int isValid = 0; while (isValid == 0) { printf(“Please enter a password: “); fgets(str, 10, stdin); if (strlen(str) == 9 && str[8] != ‘\n’) { //http://stackoverflow.com/questions/21691843/how-to-correctly-input-a-string-in-c printf(“Error! String is too long\n\n”); […]

为什么fgets没有输入第一个值?

我正在编写一个程序来快速编写我的html文件。 当我来写我的页面内容时,我遇到了问题。 #include int main() { int track; int question_no; printf(“\nHow many questions?\t”); scanf(“%d”,&question_no); char question[question_no][100]; for(track=1;track<=question_no;track++) { printf("\n%d. “,track); printf(“\nQuestion number %d.\t”,track); fgets(question[track-1],sizeof(question[track-1]),stdin); printf(“\n\n\tQ%d. %s “,track,question[track-1]); } } 在这个程序中,我正在写一些问题及其答案(在html文件中)。 当我测试运行这个程序时,我将question_no的值输入到3.但是当我输入我的第一个问题时,它没有question[0] ,因此第一个问题没有输出。 其余的问题输入没有问题。 我在stackoverflow上搜索了一些问题,发现fgets()查找最后的\0字符,并且\0停止它。 我还发现我应该使用缓冲区通过fgets()输入,所以我使用: setvbuf和setbuf但也没有用(我可能编码错了)。 在我的第一个和最后一个(以及) scanf语句之后我也使用了fflush(stdin)从stdin中删除任何\0字符,但这也没有用。 有没有办法接受fgets()的第一个输入? 我现在正在使用stdin和stdout。 我不访问,读取或写入任何文件。

C:清除STDIN

基本上在每个printf之前的windows的代码块我有“fflush(stdin);” 哪个有效。 当我将我的代码复制到Linux时,它不起作用,也没有“fflush(stdin);”的替代方案。 我发现了。 无论我采用哪种方式,输入似乎都没有在缓冲区中清除,或者我的代码中的某些内容不正确。 #include #include #include #include int main() { char pbuffer[10], qbuffer[10], kbuffer[10]; int p=0, q=0, k=0; int r, i, Q, count, sum; char a[3]; a[0]=’y’; while(a[0]==’y’ || a[0]==’Y’) { printf(“Enter ap value: \n”); fgets(pbuffer, sizeof(pbuffer), stdin); p = strtol(pbuffer, (char **)NULL, 10); printf(“Enter aq value: \n”); fgets(qbuffer, sizeof(qbuffer), stdin); q = […]

用C读取文件

我的朋友和我正在研究一个项目,我们需要从C中读取文件的输入。 该文件如下所示: 15 25 200 3 10 17.99 22.99 109.99 100 2 4 5.99 99.99 20.00 49.99 10 10 10 10 10 10 10 10 10 10 3.99 5.99 7.99 8.00 5.00 5.00 5.00 6.00 7.00 9.99 5 我需要逐行读取文件,并将每个值设置为不同的变量。 例如,第一行的第一个值必须设置为变量preSalePrices,第二个值为doorPrices,第三个为preSales。 我需要帮助弄清楚如何指定每行的值的数量。 例如,如何告诉程序在第一行获得三个值,而在第二行只获得两个值? 然后在第五行上有四个值,依此类推。 这是我的代码,但它只是崩溃: int main() { float preSalePrices, doorPrices; int preSales; FILE *fp; fp […]

在C中获得无限输入?

所以我正在尝试编写一个允许用户输入无限量字符的函数。 例如: char string[100] 将输入限制为100个字符。 我到目前为止的代码是: #include char* uinput(){ char *string, *current; int counter = 0; string = (char *) malloc(10 * sizeof(char)); do{ realloc(string, counter * sizeof(char)); current = string + counter; *current = getchar(); counter++; }while(*current != ‘\n’); return string; } int main(){ char *s; s = uinput(); printf(“\nYou entered: %s”, *s); return […]