Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/50: Рейтинг темы: голосов - 50, средняя оценка - 4.82
11 / 11 / 2
Регистрация: 23.02.2010
Сообщений: 120
1

Запись массива символов в файл

12.04.2010, 19:07. Просмотров 10267. Ответов 8
Метки нет (Все метки)

Здравствуйте! А кто знает как записать массив символов, имеющий пробелы, в файл, а потом его считать и вывести на экран? Подробнее:
- нужно взять массив типа char;
- заполнить его больше, чем 2 словами через пробел;
- записать его в файл
- прочитать эти слова из файла в тот же массив (или новый);
- вывести эти слова на экран;

Писать на чистом С++, т.е. используя iostream и fstream. Кто-нибудь знает как это сделать без использования всяких там векторов и stl контейнеров? Я что-то никак не соображу((
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.04.2010, 19:07
Ответы с готовыми решениями:

Запись символов в файл
Нужно в текстовый документ записать данную строку со всеми символами. #include <iostream>...

Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран
1.Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран...

Запись символов в файл столбиком
Подскажите пожалуйста, как реализовать запись масива в файл столбиком?

Запись более 30 символов в файл
Как можно сделать так чтобы строка в которой больше 30 символов записывались в новый файл?(Python)

8
ниначмуроФ
846 / 530 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
12.04.2010, 19:32 2
Цитата Сообщение от WiDe Посмотреть сообщение
без использования всяких там векторов и stl контейнеров
STL это как раз основное в с++
0
11 / 11 / 2
Регистрация: 23.02.2010
Сообщений: 120
12.04.2010, 21:00  [ТС] 3
ну я это понимаю, просто мне бы это надо сделать не используя STL. Просто я этим хотел сказать, что надо использовать cout, cin, ifstream, ofstream и тп.

Добавлено через 1 час 21 минуту
Вот рылся в литературе, нашёл следующее:
C++
1
output.write(a,32);
Записывает массив а, 32 элемента... Но записывает и весь "мусор", к сожалению. Кстати, а как в массив забить слова через пробел?=) cin что-то не могёт(((
0
150 / 73 / 27
Регистрация: 09.04.2010
Сообщений: 297
12.04.2010, 22:40 4
Кстати, а как в массив забить слова через пробел?=) cin что-то не могёт(((
используй gets_s()
например:
C++
1
2
3
4
char c[100];
cout << "Input text-> ";
gets_s(c);
cout << c;
0
11 / 11 / 2
Регистрация: 23.02.2010
Сообщений: 120
12.04.2010, 23:12  [ТС] 5
FireNovel, спасибо.
У меня тут парадокс какой-то))) Вот код, допустим:
C++
1
2
3
4
5
6
7
8
9
10
11
int main()
{       char a[32];//="Proverka probela";
        ofstream output("output.txt");
 
        for(int i=0; i<32; i++) a[i]=' ';
        gets(a);
        output.write(a,32);
        output<<" 23 42 23 53";
        cin.get();
        return 0;
}
Если ввожу с клавиатуры proverka pro, то в файле записывается proverka pro 23 42 23 53. А если ввожу что-нить другое, например error pro, то в файл уже фигня записывается 牥潲⁲牰o†††††††††††㈠″㈴㈠″㌵. Чё за фигня такая??

Добавлено через 10 минут
Притом, если потом эти иероглифы считывать, то программа их понимает)))
0
1126 / 785 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
12.04.2010, 23:39 6
Другой вариант записи массива в файл
C++
1
output << a;
Цитата Сообщение от WiDe Посмотреть сообщение
в файл уже фигня записывается 牥潲⁲牰o†††††††††††㈠″㈴㈠″㌵.
По-видимому, Notepad(Блокнот) воспринимает получившийся текстовый файл output.txt, как записанный в Юникоде. Если открыть файл output.txt в Блокноте и выбрать меню "Сохранить как...", то внизу окна сохранения файла будет написано "Кодировка: Юникод"
0
150 / 73 / 27
Регистрация: 09.04.2010
Сообщений: 297
13.04.2010, 00:27 7
все работает без проблем:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <fstream>
#define TEXT 100
int main()
{       char a[TEXT];//="Proverka probela";
        std::ofstream output("output.txt");
        gets_s(a); // " sdkjfh sjd h "
        output << a;
        output << "-> 23 42 23 53";
        
        return 0;
}
// в файле: " sdkjfh sjd h -> 23 42 23 53"
0
11 / 11 / 2
Регистрация: 23.02.2010
Сообщений: 120
13.04.2010, 01:46  [ТС] 8
FireNovel, спасибо, я разобрался. А для записи используются read и write для потоков.

Alex5, это-то да, но так в файл запишется первый набор символов до пробела, то что после пробела - не запишется...
0
1126 / 785 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
13.04.2010, 13:37 9
Цитата Сообщение от WiDe Посмотреть сообщение
Alex5, это-то да, но так в файл запишется первый набор символов до пробела, то что после пробела - не запишется...
C++
1
2
3
char str[100];
ofstream output("output.txt");
output << str;
WiDe, Visual Studio 6. ( operator << ) записывает всю строку( т.е. пока не встретится нулевой символ '\0' )
Это cin >> str; прочитает только одно слово ( пока не встретится пробел )

Строку с пробелами можно прочитать с помощью cin::getline()
C++
1
cin.getline( str, k );  //прочитать не более  (k-1) символа
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.04.2010, 13:37

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

Запись нерегулярных символов в файл
работаю над программой, которая хранит в файле список фильтров запись произвожу таким образом:...

Запись 20 символов в файл и вывод на экран
Здравствуйте.Подскажите пожалуйста, нужно ввести с клавиатуры 20 символов, сохранить их в файл и...

Запись (чтение) русских символов в(с) файл(а)
Вот мой кусок кода: string name; name = Console.ReadLine(); FileStream fin = new...

Запись символов в файл по кодам кодировки
Есть некий массив, но не с символами, а их кодами. Необходимо произвести запись в файл так , чтобы...

Замена символов в строках / Запись в результирующий файл
Народ, помогите пожалуйста дописать алгоритм замены символов (он должен быть на месте ??? в...

Binarywriter, запись в файл: появление лишних символов
Записываю в файл таким образом: writer.Write(&quot;Строка&quot;); Кодировка Encoding.GetEncoding(866)...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.