需要在linux的终端控制程序读取文件并输出所读取的文件内容,具体情况如下,使用makefile文件make一个可以运行的test.exe程序,然后再在终端通过./test < data.txt (这里的data.txt就是我需要输出的数据内容),将data.txt文件数据传入test.exe中然后运行,要求在屏幕上打印出data.txt的文件数据内容在终端上面。
问题是无法获取到data.txt中的数据内容,不知道怎么样才能把文件名读取到程序中去或者直接将文件的数据内容读取到c程序里面。
在linux的终端上的操作:
./test < data.txt
data.txt的文件内容
123132
121313
852666
663232
test程序部分的代码因为不知道怎么引入文件所以没有这一部分。
无报错
尝试用命令行参数argv来获取文件的名字但是事实证明,这个文件的重定向跟argv一点关系都没有。
我想要实现能够在Linux系统上,通过./test.exe < data.txt 的命令来将data.txt中的文件数据传输进test.exe程序然后在Linux终端上打印出来。
首先,你需要编写一个程序来读取文件内容,并把文件内容打印到屏幕上。这个程序可以使用C或C++编写,例如:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[]) {
// 检查命令行参数
if (argc != 2) {
printf("Usage: %s <filename>\n", argv[0]);
return 1;
}
// 打开文件
FILE* file = fopen(argv[1], "r");
if (file == NULL) {
printf("Cannot open file: %s\n", argv[1]);
return 1;
}
// 读取文件内容
char c;
while ((c = fgetc(file)) != EOF) {
putchar(c);
}
// 关闭文件
fclose(file);
return 0;
}
然后,你可以创建一个Makefile文件来编译这个程序,例如:
test: test.c
gcc -o test test.c
这个Makefile文件包含一个目标test,它依赖于test.c文件。当你运行make命令时,它会使用gcc命令编译test.c文件,生成一个可执行文件test