Форум программистов, компьютерный форум CyberForum.ru

Чтение строки из файла - C++

Восстановить пароль Регистрация
 
icanfly_bd
0 / 0 / 0
Регистрация: 24.10.2013
Сообщений: 19
24.10.2013, 19:38     Чтение строки из файла #1
Задание:
Считать из входного файла строку символов; переписать ее в выходной файл
Проблема такая:
В входном документе прописал
Я выполнил третье задание.

Долго думал, однако получилось.
В выходном файле печататется все без пробелов, к тому же заполняется все буквами М, т.е.
Явыполнилтретьезадание.Долгодумал,однакополучилось.МММММММММММММММММММММММММММММММММММММММММММММММММ
Код программы:
Код
#include <iostream>
#include "fstream"
using namespace std;
int main ()
{
	char a[100];
	int i;
	ifstream in("stroka.txt");
	ofstream out("outstroka.txt");
	for (i=0; i<100; i++)
			in >> a[i];
			if (a[i]!='\n')
				{
				for(i=0; i<100; i++)
			    out << a[i];
			}
	



	return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2013, 19:38     Чтение строки из файла
Посмотрите здесь:

C++ Чтение строки из файла
Строки, чтение из файла C++
Чтение строки из файла C++
Чтение строки из файла C++
Чтение из файла и строки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.10.2013, 19:51     Чтение строки из файла #2
Есть методы строкового чтения, например, getline().
Оксана 1234
 Аватар для Оксана 1234
4 / 4 / 0
Регистрация: 10.04.2013
Сообщений: 158
24.10.2013, 19:52     Чтение строки из файла #3
Цитата Сообщение от icanfly_bd Посмотреть сообщение
out << a[i];
я думаю правильнее будет out << a[i]<<' ';
icanfly_bd
0 / 0 / 0
Регистрация: 24.10.2013
Сообщений: 19
24.10.2013, 19:53  [ТС]     Чтение строки из файла #4
Цитата Сообщение от alsav22 Посмотреть сообщение
Есть методы строкового чтения, например, getline().
не подходит ;( нужно использовать только изученные коды. В принципе, я здесь все использовал. Только доделать не могу
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.10.2013, 19:57     Чтение строки из файла #5
Цитата Сообщение от icanfly_bd Посмотреть сообщение
нужно использовать только изученные коды.
И что изучили?

Добавлено через 1 минуту
И вот так не пишите:
Цитата Сообщение от icanfly_bd Посмотреть сообщение
#include "fstream"
В кавычках пишут пользовательские файлы.

Добавлено через 1 минуту
Файл на открытие для чтения всегда проверять нужно (в дргой теме уже писал вам об этом).
icanfly_bd
0 / 0 / 0
Регистрация: 24.10.2013
Сообщений: 19
24.10.2013, 20:02  [ТС]     Чтение строки из файла #6
Цитата Сообщение от Оксана 1234 Посмотреть сообщение
я думаю правильнее будет out << a[i]<<' ';
мне не нужно выводить массив в командную строку, а нужно выводить в файл.
Цитата Сообщение от alsav22 Посмотреть сообщение
И что изучили?

Добавлено через 1 минуту
И вот так не пишите:

В кавычках пишут пользовательские файлы.
так преподаватель объяснял. Если не ошибаюсь, то альтернативная запись
#include <fstream.h> я прав?

Цитата Originally Posted by icanfly_bd View Post
нужно использовать только изученные коды.
И что изучили?
ofstream; ifstream; in; out; in.close
Это все коды по файлам.
justDo
 Аватар для justDo
8 / 8 / 2
Регистрация: 06.10.2013
Сообщений: 19
24.10.2013, 20:03     Чтение строки из файла #7
Цитата Сообщение от icanfly_bd Посмотреть сообщение
к тому же заполняется все буквами М
это из-за того, что у вас размерность массива больше, чем количество данных. инициализируйте массив нулями
C++
1
2
3
4
5
6
....
const short size = 100;
    char a[size];
    for(int i = 0; i < size; ++i)
        a[i] = '\0';
....
icanfly_bd
0 / 0 / 0
Регистрация: 24.10.2013
Сообщений: 19
24.10.2013, 20:20  [ТС]     Чтение строки из файла #8
Цитата Сообщение от justDo Посмотреть сообщение
это из-за того, что у вас размерность массива больше, чем количество данных. инициализируйте массив нулями
C++
1
2
3
4
5
6
....
const short size = 100;
    char a[size];
    for(int i = 0; i < size; ++i)
        a[i] = '\0';
....
Благодарю, сработало. Но мне нужно выводить лишь одну строку - первую. Вторую ввел специально, чтобы проверить программу. К тому же записывание проводится также без пробелов.

Добавлено через 11 минут
Цитата Сообщение от Оксана 1234 Посмотреть сообщение
я думаю правильнее будет out << a[i]<<' ';
добавляется пробел после каждого символа, а надо после каждого слова
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.10.2013, 20:20     Чтение строки из файла #9
Цитата Сообщение от icanfly_bd Посмотреть сообщение
#include <fstream.h> я прав?
Это С. В С++ <fstream>
justDo
 Аватар для justDo
8 / 8 / 2
Регистрация: 06.10.2013
Сообщений: 19
24.10.2013, 20:21     Чтение строки из файла #10
Цитата Сообщение от icanfly_bd Посмотреть сообщение
К тому же записывание проводится также без пробелов.
ну я не говорил, что это избавит от другой проблемы

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <fstream>
using namespace std;
 
int main ()
{
    ifstream in("stroka.txt");
    ofstream out("outstroka.txt");
 
    char c = '\0';
    while(in.get(c))
    {
        if(c == '\n')
            break;
        out << c;
    }
    
    return 0;
}
не забудьте проверку на пустой файл и тому подобное
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.10.2013, 20:23     Чтение строки из файла #11
Цитата Сообщение от icanfly_bd Посмотреть сообщение
ofstream; ifstream; in; out; in.close
Это все коды по файлам.
В ifstream есть метод для чтения строк, назывется getline(): http://www.cplusplus.com/reference/i...tream/getline/
А это всё извращения.
justDo
 Аватар для justDo
8 / 8 / 2
Регистрация: 06.10.2013
Сообщений: 19
24.10.2013, 20:27     Чтение строки из файла #12
Цитата Сообщение от alsav22 Посмотреть сообщение
А это всё извращения.
вообще, это полезно знать.
тем более, я так понимаю человек в университете изучает язык, там могут преподаватели ставить ограничения на используемые функции.
icanfly_bd
0 / 0 / 0
Регистрация: 24.10.2013
Сообщений: 19
24.10.2013, 20:34  [ТС]     Чтение строки из файла #13
Цитата Сообщение от justDo Посмотреть сообщение
ну я не говорил, что это избавит от другой проблемы

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <fstream>
using namespace std;
 
int main ()
{
    ifstream in("stroka.txt");
    ofstream out("outstroka.txt");
 
    char c = '\0';
    while(in.get(c))
    {
        if(c == '\n')
            break;
        out << c;
    }
    
    return 0;
}
не забудьте проверку на пустой файл и тому подобное
Спасибо, работает. Объясните, пожалуйста, если не трудно, что значит условие in.get(c)
и про проверки, что Вы имели в виду? Создать пустой файл и проверить его? или что?
alsav22
24.10.2013, 20:36
  #14

Не по теме:

Цитата Сообщение от justDo Посмотреть сообщение
вообще, это полезно знать
Это - что?

justDo
 Аватар для justDo
8 / 8 / 2
Регистрация: 06.10.2013
Сообщений: 19
24.10.2013, 20:58     Чтение строки из файла #15
Цитата Сообщение от icanfly_bd Посмотреть сообщение
in.get(c)
считывает по символу из файла. и если возвращаемое значение != NULL, то выполняется тело цикла
Цитата Сообщение от icanfly_bd Посмотреть сообщение
и про проверки, что Вы имели в виду?
я имел ввиду добавить в коде проверку на существование файла, есть ли в нем данные. вывод соответствующих сообщений об ошибках.
хотя не знаю нужно ли это вам. просто я привык делать это.

Добавлено через 4 минуты

Не по теме:

Цитата Сообщение от alsav22 Посмотреть сообщение
Это - что?
я имел ввиду такие простые вещи, которые могут помочь понять как работают другие более сложные вещи

icanfly_bd
0 / 0 / 0
Регистрация: 24.10.2013
Сообщений: 19
24.10.2013, 21:27  [ТС]     Чтение строки из файла #16
Цитата Сообщение от justDo Посмотреть сообщение
я имел ввиду добавить в коде проверку на существование файла, есть ли в нем данные. вывод соответствующих сообщений об ошибках.
хотя не знаю нужно ли это вам. просто я привык делать это.
лишним не будет, только, увы, не знаю как ;( курс сжатый. Программирование временное, пока другие заняты школьным курсом математики,те, кто его знает, занимаются программированием.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2013, 21:30     Чтение строки из файла
Еще ссылки по теме:

C++ Чтение строки и файла
Чтение строки из файла C++
C++ чтение строки из файла

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
justDo
 Аватар для justDo
8 / 8 / 2
Регистрация: 06.10.2013
Сообщений: 19
24.10.2013, 21:30     Чтение строки из файла #17
Цитата Сообщение от icanfly_bd Посмотреть сообщение
курс сжатый
не ждите, пока научат
Yandex
Объявления
24.10.2013, 21:30     Чтение строки из файла
Ответ Создать тему
Опции темы

Текущее время: 10:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru