好吧,我正在学习用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)并在那里写道:&#34; abc
&#34;。
我设法使用MinGW编译器编译代码,在我在.exe文件的文件夹中打开的CMD窗口中,我写道:&#34; Task.exe <input.txt
&#34;。
该程序正常运行。我的意思是,它等着我输入3个字符。
我的工作做错了什么?
请帮帮我:)。
答案 0 :(得分:1)
要求您阅读输入文本文件。
为什么不使用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
(不需要重定向!)。
你应该习惯于阅读你正在使用的每个功能的文档,测试失败案例,编译所有警告和&amp;调试信息(gcc -Wall -Wextra -std=c99 -g
),以及使用调试器(gdb
)。