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

Вывод в файл - C++

Восстановить пароль Регистрация
 
молодой_горячий
1 / 1 / 0
Регистрация: 26.04.2011
Сообщений: 42
17.03.2013, 20:45     Вывод в файл #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# include <fstream.h>
# include <conio.h>
# include <process.h>
void main()
{
clrscr();
ifstream File1("text1.txt");
   while (!File1) {cout<<"Error! File does not exist..."; exit(1);}
 char *t=new char [30];
   while (!File1.eof())
   {
    File1>>t;
    cout<<t<<"\n";
   }
File1.close();
ifstream file2("text2.txt");
 
int k=strlen(t);
   while (k>0)
   {
    File2<<t; // просто хочу вывести данные с массива в файл
    cout<<t<<"\n";
    k--;
   }
delete []t;
File2.close();
 
getch();
}
Ошибка - illegal structure operation. Будьте добры - поясните ошибку. Borland c++ 3.1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2013, 20:45     Вывод в файл
Посмотрите здесь:

вывод в файл C++
[C++] Вывод в файл. C++
Вывод в файл C++
Вывод в файл C++
C++ Вывод в файл
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.03.2013, 20:48     Вывод в файл #2
C++
1
ofstream File2("text2.txt");
m1Rr0r
 Аватар для m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,213
Завершенные тесты: 2
17.03.2013, 20:49     Вывод в файл #3
C++
1
File2<<t[k];
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.03.2013, 20:50     Вывод в файл #4
И потом, у вас путаница с тем, что читаете/пишите - строки или символы.
молодой_горячий
1 / 1 / 0
Регистрация: 26.04.2011
Сообщений: 42
17.03.2013, 20:53  [ТС]     Вывод в файл #5
Цитата Сообщение от alsav22 Посмотреть сообщение
И потом, у вас путаница с тем, что читаете/пишите - строки или символы.
Строки
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.03.2013, 20:56     Вывод в файл #6
Вернее, слова... У вас массив char под одно слово.
молодой_горячий
1 / 1 / 0
Регистрация: 26.04.2011
Сообщений: 42
17.03.2013, 21:05  [ТС]     Вывод в файл #7
Цитата Сообщение от alsav22 Посмотреть сообщение
Вернее, слова... У вас массив char под одно слово.
Я читаю слова без пробелов, получается как одно слово

Добавлено через 6 минут
вместо ifstream использовал ofstream
- я так понимаю ofstream не создает *.txt документ(в будущем мне это нужно)
- не выводится массив файл2
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.03.2013, 21:09     Вывод в файл #8
Цитата Сообщение от молодой_горячий Посмотреть сообщение
Я читаю слова без пробелов, получается как одно слово
Куда читаете? Массив не слов, а символов. Запишется одно последнее слово из файла.

Добавлено через 1 минуту
Цитата Сообщение от молодой_горячий Посмотреть сообщение
вместо ifstream использовал ofstream
- я так понимаю ofstream не создает *.txt документ(в будущем мне это нужно)
Читайте про потоки чтения/записи. Всё наоборот: ifstream не создаёт, ofstream создаёт (если нет).
молодой_горячий
1 / 1 / 0
Регистрация: 26.04.2011
Сообщений: 42
17.03.2013, 21:12  [ТС]     Вывод в файл #9
Цитата Сообщение от alsav22 Посмотреть сообщение
Куда читаете? Массив не слов, а символов. Запишется одно последнее слово из файла.

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

Читайте про потоки чтения/записи. Всё наоборот: ifstream не создаёт, ofstream создаёт (если нет).
я не могу работать с типом string, поэтому и взял масив char. Я пробую вывести все что есть в файле1 в файл2, а потом разбираться с пробелами

]
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.03.2013, 21:30     Вывод в файл #10
Цитата Сообщение от молодой_горячий Посмотреть сообщение
Я пробую вывести все что есть в файле1 в файл2, а потом разбираться с пробелами
Тогда так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <fstream.>
#include <conio.h>
#include <process.h>
#include <iostream>
using namespace std;
 
int main()
{
//clrscr();
ifstream File1("text1.txt");
if (!File1) cout << "Error! text1.txt does not exist..." << endl;
else
{
    ofstream File2("text2.txt");
    
    char *t = new char [30];
    
    while (!File1.eof())
    {
        File1 >> t;
        cout << t << ' ';
        File2 << t << ' ';
    }
    cout << endl;
    
    File1.close();
    File2.close();
    
    File1.open("text2.txt");
    if (!File1) cout << "Error! text2.txt does not exist..." << endl;
    else
    {
        while (!File1.eof())
        {
            File1 >> t;
            cout << t << ' ';
            
        }
        cout << endl;
    }
    delete [] t;
}
 
getch();
}
m1Rr0r
 Аватар для m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,213
Завершенные тесты: 2
17.03.2013, 21:35     Вывод в файл #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <fstream>
 
using namespace std;
 
int main()  {
    ifstream File1("text1.txt", ios::in | ios::_Nocreate);
    ofstream File2("text2.txt", ios::out);
    if(!File1)  {
        cout<<"Error! Open file1...";exit(1);
    }
    if(!File2)  {
        cout<<"Error! Open file2...";exit(1);
    }
    while(!File1.eof())
        File2.put(File1.get());
 
    File1.close();
    File2.close();
    return 0;
}
молодой_горячий
1 / 1 / 0
Регистрация: 26.04.2011
Сообщений: 42
17.03.2013, 22:34  [ТС]     Вывод в файл #12
Цитата Сообщение от alsav22 Посмотреть сообщение
Тогда так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <fstream.>
#include <conio.h>
#include <process.h>
#include <iostream>
using namespace std;
 
int main()
{
//clrscr();
ifstream File1("text1.txt");
if (!File1) cout << "Error! text1.txt does not exist..." << endl;
else
{
    ofstream File2("text2.txt");
    
    char *t = new char [30];
    
    while (!File1.eof())
    {
        File1 >> t;
        cout << t << ' ';
        File2 << t << ' ';
    }
    cout << endl;
    
    File1.close();
    File2.close();
    
    File1.open("text2.txt");
    if (!File1) cout << "Error! text2.txt does not exist..." << endl;
    else
    {
        while (!File1.eof())
        {
            File1 >> t;
            cout << t << ' ';
            
        }
        cout << endl;
    }
    delete [] t;
}
 
getch();
}
Благодарю, очень помогли. Удачи
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
18.03.2013, 00:10     Вывод в файл #13
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
2
3
4
5
while (!File1.eof())
{
   File1 >> t;
   cout << t << ' ';
}
Лишняя итерация цикла обеспечена.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.03.2013, 00:31     Вывод в файл #14
Цитата Сообщение от kazak Посмотреть сообщение
Лишняя итерация цикла обеспечена.
Да, пробел в конце мешает:
C++
1
2
3
4
5
6
while (true)
{
     File1 >> t;
     if (File1.eof()) break;
     cout << t << ' ';
}
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
18.03.2013, 00:32     Вывод в файл #15
Вот так лучше
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2013, 00:39     Вывод в файл
Еще ссылки по теме:

Вывод в файл C++
Вывод из файл C++
C++ Вывод в файл

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

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.03.2013, 00:39     Вывод в файл #16
Цитата Сообщение от kazak Посмотреть сообщение
Вот так лучше
Лучше тут, всё-таки, посимвольно читать, как m1Rr0r предложил: без всяких массивов char и без лишнего пробела в конце файла.
Yandex
Объявления
18.03.2013, 00:39     Вывод в файл
Ответ Создать тему
Опции темы

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