当我运行程序时,Stdin不起作用

时间:2019-01-30 01:54:05

标签: c terminal

我在代码中有以下C代码。c

int main(int argc, char *argv[]) {
    FILE *openFile = NULL;
    openFile=stdin;
}

但是当我编译并运行代码时

gcc -g -o compiledcode code.c
./compiledcode

终端不会提示我输入。怎么了?

1 个答案:

答案 0 :(得分:1)

您只是将stdin作为文件打开,但没有读取文件。 从stdin获取输入的方法有很多。

函数getchar可用于从stdin读取单个字符。使用getc()fgetc()从任意文件流中读取。 示例:

int c = getchar();
printf("you entered %c\n", c);

函数fgets可用于从文件中读取一行。 示例:

char data[200];
fgets(data, sizeof(data), stdin); // we type stdin as file.
printf("you entered %s\n", data);

函数scanf及其函数系列可用于从stdin读取许多不同的格式。 例如:

char data[200]; // size need be bigger or equal to input length
scanf("%199s", data);  // Protect from buffer overflow
printf("you entered %s\n", data);