Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2010, 00:23   #1
PlumBoom
 
Регистрация: 21.03.2010
Сообщений: 7
Печаль Считывание из текстового файла

Всем, Привет!
Не могу разобраться с работой с текстовыми файлами. Поиском тут просмотрел темы, похожие на мой вопрос, но попадались большие коды и я еще больше запутался.
Нужно считать текст для дальнейшей работы с ним, с переменными, в которые считали. (Текст может быть любой - проза из книги и др.). Но проделать такое не получается.
Как можно такое проделать?

Код:
#include "stdafx.h"
#include "stdio.h"

void main()
{
	int i=0;
	char str[100];
	FILE *f;
	f=fopen("C:\\1.txt","r");
	while(!feof(f))
	{
		fscanf(f,"%s\n",&str[i]);
		printf("%s\n",str[i]);
		i++;
	}
	getch();
	fclose(f);
}
Спасибо за внимание!
PlumBoom вне форума Ответить с цитированием
Старый 21.03.2010, 00:34   #2
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

В место char используй string
Cpluser вне форума Ответить с цитированием
Старый 21.03.2010, 00:35   #3
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Код:
#include "stdafx.h"
#include "stdio.h"

void main()
{
	int i=0;
	char str[100];
	FILE *f;
	f=fopen("C:\\1.txt","r");
	if (f != NULL)
		while((c = fgetc(f)) != EOF)
			str[i++] = c;
	printf("%s", str);
	getch();
	fclose(f);
}
Ну и потом делайте с массивом все, что хотите.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 21.03.2010, 19:49   #4
PlumBoom
 
Регистрация: 21.03.2010
Сообщений: 7
Восклицание

Цитата:
Сообщение от Cpluser Посмотреть сообщение
В место char используй string
Если я правильно изучаю язык Си и Си++, то там кажется нет типа данных string?!


Цитата:
Сообщение от Гром Посмотреть сообщение
Код:
#include "stdafx.h"
#include "stdio.h"

void main()
{
	int i=0;
	char str[100];
	FILE *f;
	f=fopen("C:\\1.txt","r");
	if (f != NULL)
		while((c = fgetc(f)) != EOF)
			str[i++] = c;
	printf("%s", str);
	getch();
	fclose(f);
}
Ну и потом делайте с массивом все, что хотите.
А что у Вас за переменная "c" ?
PlumBoom вне форума Ответить с цитированием
Старый 21.03.2010, 19:54   #5
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Обычный символ. В него считывается очередной символ файла и тут же проверяется, не является ли он концом файла. Если нет - записывается в строку, процесс продолжается.
Ну и, кстати, да:
Код:
str[i] = '\0';
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 21.03.2010, 20:02   #6
PlumBoom
 
Регистрация: 21.03.2010
Сообщений: 7
По умолчанию

А у меня на нее ругается
Код:
...
C:\2\2.cpp(11) : error C2065: 'c' : undeclared identifier
...
И куда всунуть, поставить:
Код:
str[i] = '\0';
PlumBoom вне форума Ответить с цитированием
Старый 21.03.2010, 20:08   #7
PlumBoom
 
Регистрация: 21.03.2010
Сообщений: 7
По умолчанию

хотя, я попробовал "с" определить как char в начале, работает. но в конце еще кучку кракозябликов разных выдало =)
PlumBoom вне форума Ответить с цитированием
Старый 21.03.2010, 20:37   #8
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

А, точно, забыл объявить. Ну да, где-нибудь в начале c надо.
Код:
str[i] = '\0';
сразу после цикла, перед printf.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 21.03.2010, 20:41   #9
PlumBoom
 
Регистрация: 21.03.2010
Сообщений: 7
По умолчанию

Спасибо, всё помогло!
PlumBoom вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Считывание с текстового файла Morphling Фриланс 12 07.02.2010 17:37
Считывание текстового файла с другого компьютера Alex22 Работа с сетью в Delphi 4 07.10.2009 14:07
считывание данных из текстового файла Olejik Общие вопросы по Java, Java SE, Kotlin 3 03.10.2009 20:40
Считывание текстового файла в паскале Absent Помощь студентам 4 31.05.2009 16:00
считывание с текстового файла ciaonataha Помощь студентам 0 20.04.2009 12:09