Вопрос Обновлен с помощью моего кода.Хранение каждой новой строки на два нуля из файла с использованием языка C
У меня есть файл в формате ниже. Каждая строка содержит целое число и float.
12 2.0
11 1.1
3 3.0
Я хочу сохранить первые данные в каждой строке в переменную А, а вторые данные в переменной B.
В начале, я использую fscanf, чтобы сделать это, как показано ниже
while (1) {
int exit;
exit = fscanf(fp, "%d%f", &A, &B);
if (exit < 2) break;
}
Если я печатаю результат а и в, было бы
12 2.0
11 1.1
3 3.0
Но на самом деле я хочу, чтобы сохранить символ новой строки как 2 нуля, например:
12 2.0
11 1.1
0 0
3 3.0
Некоторые веб-сайты предлагают использовать fgets/fgetc для чтения новой строки. Но я не могу понять, как fgets/fgetc может хранить целое число и плавать в var A и B.
Спасибо за внимание.
_ Есть слишком много возможных ответов, или хорошие ответы будут слишком длинными для этого формата. Пожалуйста, добавьте детали, чтобы сузить набор ответов или изолировать проблему, на которую можно ответить в нескольких параграфах. –
* Но я не могу понять, как fgets/fgetc может хранить целое число и плавать в var A и B. * - Действительно, они могут «т. Идея заключалась бы в том, чтобы заметить, когда 'fgets' читает пустую строку, а затем сохраняет нули в A и B вручную. Когда он не прочитал пустую строку, используйте 'sscanf' для ее анализа. Если у вас есть эта работа, реорганизуйте бит 'sscanf' для использования' strtod'/'strtol' вместо этого для лучшей надежности. – zwol
(Обратите внимание на бит в документации 'fgets', где объясняется разница между тем, что вы получаете для пустой строки, и тем, что вы получаете для конца файла.) – zwol