在C中接受用户的连续输入



我正在做一个项目,在这个项目中,我必须在c中的终端中接受用户的输入,直到他们的输入退出,然后我结束程序。我意识到我做不到:

#include<stdio.h>
#include<stdlib.h>    
int main(int argc, char **argv){
    char *i;
    while(1){
        scanf("%s", i);
        /*do my program here*/
        myMethod(i);
    }
}

因此,我的问题是,我该如何接受这些用户输入?我能用循环做吗?我还能做什么?

首先必须为正在读取的字符串分配空间,这通常是用宏大小的char数组来完成的。char i[BUFFER_SIZE]然后将数据读取到缓冲区中,fgets可能比scanf更好。最后,您检查您的退出案例,strcmp"quit"

#include <stdio.h>
#include <string.h>
#define BUFFER_SIZE BUFSIZ /* or some other number */
int main(int argc, const char **argv) {
    char i[BUFFER_SIZE];
    fgets(i, BUFSIZ, stdin);
    while (strcmp(i, "quitn") != 0) {
        myMethod(i);
        fgets(i, BUFSIZ, stdin);
    }
}

使用fgets获得的字符串被配置为空终止

scanf()将返回成功读取的元素数量我将像下面的一样使用它

#include<stdio.h>
#include<string.h>
int main()
{
   int a[20];
   int i=0;
   printf("Keep entering numbers and when you are done press some charactern");
   while((scanf("%d",&a[i])) == 1)
   {   
      printf("%dn",a[i]);
      i++;
   }   
   printf("User has ended giving inputsn");
   return 0;
}

您可以使用do-while循环:

do
{
    // prompts the user 
}
while (valueGiven != "quit");
using do-while loop. 
   char *i = null;
   char ch = 'a';/
   do{
    scanf("%s", &i);
    /*do my program here*/
    myMethod(i);
    printf("Do you want to continues.. y/n");
    ch =  getchar();
    }while(ch != 'q');

相关内容

  • 没有找到相关文章

最新更新