gpt4 book ai didi

c - CMD 上的输入重定向

转载 作者:行者123 更新时间:2023-11-30 15:27:28 25 4
gpt4 key购买 nike

嗯,我正在学习 C 语言编程,我接到一个作业,将输入文本文件中的 3 个字符获取到 3 个变量中,然后打印它们的 ASCII 值。
我写了这段代码:

#include <stdio.h>
int main()
{
char a,b,c;
printf("Insert 3 characters:\n");
a=getch();
b=getch();
c=getch();
printf("%d, %d, %d",(int)a,(int)b,(int)c);
}

我打开了一个文本文件 (input.txt) 并在其中写入:“ abc ”。
我设法使用 MinGW 编译器编译代码,并在 .exe 文件的文件夹中打开的 CMD 窗口中,我写道:“Task.exe <input.txt ”。
程序正常运行。我的意思是,它等待我输入 3 个字符。

我在工作中做错了什么?
请帮助我:)

最佳答案

系统会要求您读取输入文本文件

为什么不使用 fopen打开文件句柄,然后 fgetc从中读取?

您也许可以使用fscanf 。不要忘记使用结果计数。

当然,您应该调用 fclose 。使用perror对于处理错误情况很有用。

因此,从检查程序是否有参数的代码开始,然后fopen它:

int main(int argc, char**argv) {
if (argc<2) { fprintf(stderr, "missing program argument\n");
exit(EXIT_FAILURE); };
FILE* fil = fopen(argv[1], "r");
if (!fil) { perror(argv[1]); exit(EXIT_FAILURE); };

然后在控制台中运行 Task.exe input.txt(无需重定向!)。

您应该养成阅读正在使用的每个函数的文档、测试失败案例、使用所有警告和调试信息进行编译的习惯(gcc -Wall -Wextra -std=c99 -g),以及使用调试器 (gdb)。

关于c - CMD 上的输入重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26962063/

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