gpt4 book ai didi

c - 从 C 中的输入重定向读取整数

转载 作者:行者123 更新时间:2023-12-02 07:05:24 24 4
gpt4 key购买 nike

在Unix命令行下,我需要使用输入重定向来指定输入文件:

./a.out < filename

这是我的源代码:

    int main(int argc, char *argv[]) {

char fileName[30];

fgets(fileName, sizeof fileName, stdin);

printf("%s\n", fileName);
}

程序打印一个整数而不是文件名。如果我使用 scanf("%s", fileName);,我会得到相同的结果

我的 google-fu 让我失望了。我做错了什么?

编辑:需要使用输入重定向(特别是 <),因此命令行参数不是一个选项。但是,我不需要真正知道文件名,我只需要从文件中读取以换行符分隔的整数。看来我问错了问题。

最佳答案

I just need to read newline-delimited integers from the file. It appears that I am asking the wrong question.

shell 的输入重定向运算符,< , 将命名文件与程序的标准输入相关联。您的程序不需要采取任何特殊操作来打开文件——它已经打开了。就像用户在键盘上打字一样从输入中读取:

/* foo.c */
#include <stdio.h>
int main(int ac, char **av) {
int i;
while(scanf("%d", &i) == 1) {
printf("Got one!: %d\n", i);
}
return 0;
}

编译你的程序:

cc foo.c

然后这样运行:

a.out < filename

关于c - 从 C 中的输入重定向读取整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12822321/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com