Мне нужно написать программу, которая принимает один аргумент командной строки. Аргументом должно быть имя файла для открытия для чтения (И если аргумент не указан или файл не может быть открыт, напечатайте сообщение об ошибке).Если бы у меня был текстовый файл значений, как бы я прочитал этот файл?
Программа открывает файл и считывает каждую строку до тех пор, пока не будет достигнута EOF. Каждая строка в файле имеет два двойных значения, представляющих точку на плоскости координат. Для каждой из строк читайте два значения, создайте точку и напечатайте эту точку, если она находится в первом квадранте плоскости координат. Я немного смущен, что это означает, когда он говорит «один аргумент командной строки», что это значит? Я попробовал написать код для программы, но я не уверен, правильно ли я это сделал.
Когда я пытаюсь скомпилировать мой код, он продолжает давать мне такие ошибки:
file.c:3: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
file.c:14: error: expected ‘)’ before ‘*’ token
А вот мой код:
#include "point.h"
FILE *open_file(char const name[], char const mode[])
{
FILE *file = fopen(name, mode);
if (file == NULL)
{
perror(name);
}
return file;
}
void point_in_Q1(FILE *in, FILE *out)
{
double x, y;
struct point p;
int check;
p = create_point(x, y);
while (check != EOF)
{
if (p.x >= 0 && p.y >= 0)
{
fprintf(out, "%lf%lf", x, y);
check = fscanf(in, "%lf%lf", &x, &y);
}
}
}
Еще одна вещь, что я запутался о том, если я имел файл со значениями для координатных точек с именем «test_points.c», я должен был бы поместить это в fopen (имя, режим)? (Вместо «имя»).
'#include' –
piokuc