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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 42, средняя оценка - 4.79
WiDe
10 / 10 / 1
Регистрация: 23.02.2010
Сообщений: 120
#1

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

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

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

Писать на чистом С++, т.е. используя iostream и fstream. Кто-нибудь знает как это сделать без использования всяких там векторов и stl контейнеров? Я что-то никак не соображу((
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2010, 19:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запись массива символов в файл (C++):

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

Запись из массива символов в структуру - C++
Есть структура: название предмета цена предмета Нужно с клавиатуры ввести строку: Авто 2300 (название и цена) . Поместить строку...

Запись массива в файл - C++
Есть класс class Figure { protected: Figure() { penColor = Form1->ColorBox1->Selected;...

запись массива в файл - C++
Имеется структура в массиве. когда ввожу данные например: 2,3,4 7,8,5 то получаю 2 3 4 0 0 0 0 0 0 7 8 5 Как...

Запись массива в файл. - C++
Ребят, помогите. Завтра курсач сдавать. Есть массив структур. Как его в файл записать? Кидаю весь файл, не ругайтесь. //...

Запись из массива а файл - C++
Добый день. Задача такая: Из файла в массив записать содержащийся в нём текст вместе с пробелами, а затем в другой файл из этого массива...

8
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
12.04.2010, 19:32 #2
Цитата Сообщение от WiDe Посмотреть сообщение
без использования всяких там векторов и stl контейнеров
STL это как раз основное в с++
0
WiDe
10 / 10 / 1
Регистрация: 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
FireNovel
150 / 73 / 8
Регистрация: 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
WiDe
10 / 10 / 1
Регистрация: 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
Alex5
1072 / 736 / 114
Регистрация: 12.04.2010
Сообщений: 1,883
12.04.2010, 23:39 #6
Другой вариант записи массива в файл
C++
1
output << a;
Цитата Сообщение от WiDe Посмотреть сообщение
в файл уже фигня записывается 牥潲⁲牰o†††††††††††㈠″㈴㈠″㌵.
По-видимому, Notepad(Блокнот) воспринимает получившийся текстовый файл output.txt, как записанный в Юникоде. Если открыть файл output.txt в Блокноте и выбрать меню "Сохранить как...", то внизу окна сохранения файла будет написано "Кодировка: Юникод"
0
FireNovel
150 / 73 / 8
Регистрация: 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
WiDe
10 / 10 / 1
Регистрация: 23.02.2010
Сообщений: 120
13.04.2010, 01:46  [ТС] #8
FireNovel, спасибо, я разобрался. А для записи используются read и write для потоков.

Alex5, это-то да, но так в файл запишется первый набор символов до пробела, то что после пробела - не запишется...
0
Alex5
1072 / 736 / 114
Регистрация: 12.04.2010
Сообщений: 1,883
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
13.04.2010, 13:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2010, 13:37
Привет! Вот еще темы с ответами:

Запись массива в файл - C++
Здравствуйте. Помогите найти ошибку в программе. С клавиатуры вводится предложение, программа считает сколько слов начинается с одинакового...

Запись массива в файл - C++
Есть функция, записывающая данные в массив void umnogenie(char a, int &amp;n, char b, int m) { char c; int i,j,l,o; ...

Запись двумерного массива в файл - C++
В общем нужно записать двумерный массив в фаил, но что то ни как не получается. //magicQuad.h #ifndef MAGICQUAD_H #define...

Запись в файл массива чисел C# - C++
Здравствуйте я пытаюсь записать в файл массив интовских чисел но когда открываю файл там оказываются кракозябры. #include &lt;iostream&gt; ...


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

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

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