чтение и запись файлов для USACO

Я делаю код для USACO, но чтение и запись файлов не работает. Я пытаюсь прочитать первую строку файла и сохранить его как целое число. Последующие строки будут прочитаны и сохранены в массив для выполнения вычислений. Я думаю, что проблема как-то связана с fopen. Я всегда получаю окно отмены, и оно говорит stream.valid ()

Вот код
_

__________________
// USACO MARATHON.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"#include "stdio.h"#include "stdlib.h"

int main()
{
FILE *infp;
FILE *outfp;
int num_points = 0;
int x[] = { 0 };
int y[] = { 0 };
int total_dist = 0;
int i;
infp = fopen("C:\\Users\\jalen\\documents\\visual studio 2017\\Project\\real_marathon\\real_marathon\\Debug\\marathon.in", "r");
outfp = fopen("marathon.out", "w");
/*if ((infp = fopen("marathon.in", "r")) != NULL)
{
fscanf(infp, "%d", num_points);
}*/

num_points = fgetc(infp);

for (i = 0; i < num_points; i++)
{
fscanf(infp, "%d %d", &x[i], &y[i]);

}
for (i = 1; i < num_points; i++)
{
int total_distance = abs((x[i] - x[i - 1])) + abs((y[i] - y[i - 1]));
}
int max_skip = 0;
for (i = 1; i < num_points - 1; i++)
{
int dont_skip = abs((x[i + 1] - x[i])) + abs((x[i] - x[i - 1])) + abs((y[i + 1] - y[i])) + abs((y[i] - y[i - 1]));
int skip = abs((x[i + 1] - x[i - 1])) + abs((y[i + 1] - y[i - 1]));
int z = dont_skip - skip;
max_skip = z;
}
int output = total_dist - max_skip;
fprintf(outfp, "%d\n", output);
fclose(infp);
fclose(outfp);
return 0;
}

-2

Решение

Я бы порекомендовал использовать ofstream и ifstream:
Там, где в моем коде написано «имя файла», замените его на имя файла, указанное в описании проблемы USACO. fin а также fout аналогичны cin а также cout Кроме этого fin а также fout читать и распечатывать файлы ввода / вывода.

#include <fstream>

using namespace std;

ofstream fout("filename.out");
ifstream fin("filename.in");

int main()
{
int N;
fin >> N;
fout << N << endl;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]