这个程序并没有完全完成,但我一步一个脚印。现在我正在尝试让程序打开一个文件,检测终端大小(行和列),并在输入文件时显示一条消息。
我已将fp设置为读取模式,如果没有指定文件,我有一条错误消息,我已经设置了我的if语句,如果列大小小于80,则显示错误,如果行大小小于20则显示一个错误...我认为这是我的问题出现的地方,在这个项目之前,我从未实际使用过终端大小。
所以我的问题是:如果没有达到调整标准,我怎么能让程序显示错误?
注意:就像我说的那样,我知道代码现在不是100%我只是想在路上做一些调试,这样我最终可以得到一个更大的工作项目。
无论如何,这是我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <sys/ioctl.h>
int main(int argc, char **argv)
{
struct winsize terminal;
FILE *fp;
int c;
ioctl (0, TIOCGWINSZ, &terminal, argv[2]);
fp = fopen(argv[1], "r"); //set open for argv[1] and set it to read mode
column = terminal.ws_col;
row = terminal.ws_row;
if (fp == NULL)
{
fprintf(stderr, "Error opening '%s'.\n", argv[1]); //if not file is specified then close program and give an error
exit(1);
}
c = fgetc(fp); //set c to fgetc
if column < 80 || row < 20) //if temrinal window is less than 80x20, display an error and exit
{
printf("Terminal window must be atleast 80x20!\n"); //display error and close program if column criteria isn't met
exit(1);
}
while(!feof(fp)) //if file is entered, display a test message (this is where later on I will show hex value)
{
printf("Good Job! You picked a file to manipulate!!\n");
exit(1);
}
fclose(fp); //close fp
return 0;
}