Как читать целые числа из файла с целыми числами и строками в C - PullRequest
0 голосов
/ 13 октября 2019

Я читаю файл .txt, который содержит данные в произвольной форме, то есть содержит целые числа и строки, смешанные в нем.

Пример .txt файла:

this is a 22 string 33 sorry222 stack33ing
still yysi288 2nd line

Я хочу прочитать файл и различить все допустимые строки, то есть не содержащие целых чисел, конкатенированных с ними. И сохраните эти строки в массиве.

Есть ли какие-либо сведения о том, как провести различие?

1 Ответ

0 голосов
/ 13 октября 2019

Во-первых: я не могу написать программу для вас. Это ваша задача, и помимо этого я не могу даже изменить что-то в вашем коде или, по крайней мере, предложить изменить, потому что вы не предоставляете никакого кода. Я могу дать вам только пыльный ведущий алгоритм для этого случая:

Все слова, которые вы можете увидеть, не являются допустимыми строками в файле. Это только одна строка, содержащая пробельные символы между каждой последовательностью символов, которые отображаются для вас как одно слово или отдельная строка, но это не так.

Сначала нужно получить всю строку из файла и сохранитьэто в массив char, давайте назовем его source, используя fgets():

#include <stdio.h>

FILE *input;
char source[200];

input = fopen("text.txt","r");

fgets(source, 200, input);

После этого вам нужно создать эти «слова» в виде отдельных строк путем переноса каждого из символов источникапоследовательно, один за другим, в другие char массивы и прекратите запись в них символов, как только в исходной строке будет указан пробел или NUL-байт после последнего слова. Не забудьте сделать Nul-Byte (\ n), оканчивающий каждую строку.

После этого вы проверяете каждую, теперь допустимую и разделенную строку, если это либо строка, содержащая числа, либо строка без номера. .

...