Чтение из файла строки. Запись в массив - C (СИ)
Формулировка задачи:
Help! Туплю. Есть файл,в котором написано предложение. Удаляются знаки препинания, получаем слитное одно большое слово.
Записываем его в массив и выводим на экран. Проблема в том,что выводится только первое слово.
#include <stdio.h>
#include <string.h>
int main()
{
char str[80];
FILE *file;
if ((file=fopen("test.txt","r"))==NULL)
{
puts("File not found!");
return 1;
}
char *mass;
mass = malloc(sizeof(char) * 1000);
// while(fscanf(file, "%s", str) == 1 )
fscanf(file, "%s", str);
int i,j;
for(i = 0, j = 0; str[i]; ++i)
{
if((str[i] >= ' ' && str[i] <= '/') || (str[i] >= ':' && str[i] <= '\\')|| (str[i] >= ',' && str[i] <= '_'))
continue;
mass[j] = str[i];
j++;
}
printf("массив: %s\n", mass);
return 0;
}Решение задачи: «Чтение из файла строки. Запись в массив»
textual
Листинг программы
fscanf(file, "%s", str);
Объяснение кода листинга программы
- В данном коде используется функция fscanf, которая предназначена для чтения данных из файла.
- В качестве аргументов функции указывается файл, из которого необходимо прочитать данные, и формат чтения.
- Формат
%sозначает, что необходимо прочитать строку (sequence of characters). - В качестве указателя на переменную, в которую будут записаны прочитанные данные, используется переменная str.
- После выполнения функции fscanf, в переменной str будет содержаться строка, которая была прочитана из файла.