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

Программа отказывается сохранять в файл - C++

Восстановить пароль Регистрация
 
Delpix
delpix.ru
 Аватар для Delpix
19 / 19 / 1
Регистрация: 06.05.2011
Сообщений: 235
17.05.2011, 21:48     Программа отказывается сохранять в файл #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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <fstream>
#include <cstring>
using namespace  std;
void main()
{
        setlocale (LC_ALL,"Russian");
        cout<<"1. Ввод с клавиатуры"<<endl;
        cout<<"2. Ввод из файла"<<endl;
        cout<<"Введите номер вашего выбора"<<endl;
        int ans;
        cin>>ans;
        if(ans!=1&& ans!=2)
{
        cout<<"Ошибка!";
        return;
}
char str[50];
        if(ans==1)
{
                cout<<"Введите строку: "<<endl;
                cin.get();
                cin.getline(str,49);
}
                if(ans==2)
        {
ifstream start("start.txt");
                if(!start)
{
                cout<<"Фаила нет!";
                return;
}
start.getline(str,49);
start.close();
        }
        int i=0;
        int size=strlen(str);
        char c; 
        bool fin=true;
        cout<<"1. Вывод в окне"<<endl;
        cout<<"2. Вывод в файл"<<endl;
    cout<<"Введите номер вашего выбора "<<endl;
        int ans2;
        cin>>ans2;
        if(ans2!=1&& ans2!=2)
{
        cout<<"Ошибка! ";
        return;
}
        if(ans2==1)
{
                cout<<"Старая строка: "<<str<<endl;
                cout<<"Новая строка: ";
                for (int t=0;t<size;t++)
                {
                c=str[t];
                if ((c=='.')||(c=='!')||(c=='?')) { fin=true; putchar (c); continue;}
                if ((fin)&&(c!=' ')) {putchar (toupper(c)); fin=false;}
                else putchar (c);
                }
                cout<<endl;
}
                if(ans2==2)
{
                ofstream finish("finish.txt");
                if(!finish)
        {
                cout<<"Файла нет!";
                return;
        }
        cout<<"Старая строка: "<<str<<endl;
        cout<<"Новая строка: ";
        for (int t=0;t<size;t++)
        {
    c=str[t];
    if ((c=='.')||(c=='!')||(c=='?')) { fin=true; putchar (c); continue;}
    if ((fin)&&(c!=' ')) {putchar (toupper(c)); fin=false;}
    else putchar (c);
        }
        cout<<"\n";
        finish<<endl;
        finish.close();
}
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
17.05.2011, 23:22     Программа отказывается сохранять в файл #2
Хз чем тут помочь, посмотри хотя бы на свои return-ы. Ужас.
Delpix
delpix.ru
 Аватар для Delpix
19 / 19 / 1
Регистрация: 06.05.2011
Сообщений: 235
17.05.2011, 23:29  [ТС]     Программа отказывается сохранять в файл #3
Цитата Сообщение от kravam Посмотреть сообщение
Хз чем тут помочь, посмотри хотя бы на свои return-ы. Ужас.
Что с ними не так. В этой программе все прекрасно работает:

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include<iostream>
#include<fstream>
#include<cstring>
using namespace  std;
void main ()
{
    setlocale (LC_ALL,"Russian");
    cout<<"1. Ввод с клавиатуры"<<endl;
    cout<<"2. Ввод из файла"<<endl;
    cout<<"Введите номер вашего выбора"<<endl;
    int ans;
    cin>>ans;
        if(ans!=1&& ans!=2)
    {
        cout<<"Ошибка!";
        return;
    }
char str[50];
        if(ans==1)
    {
        cout<<"Введите строку: "<<endl;
        cin.get();
        cin.getline(str,49);
    }
        if(ans==2)
{
ifstream start("start.txt");
        if(!start)
    {
        cout<<"Фаила нет!";
        return;
    }
start.getline(str,49);
start.close();
}
    cin.getline(str,49);
    int i=1;
    cout<<"1. Вывод в окне"<<endl;
    cout<<"2. Вывод в файл"<<endl;
    cout<<"Введите номер вашего выбора "<<endl;
    int ans2;
    cin>>ans2;
        if(ans2!=1&& ans2!=2)
    {
        cout<<"Ошибка! ";
        return;
    }
        if(ans2==1){
        cout<<"Новая строка: "<<endl;
        while(str[i]!='\0')
        {
            cout<<str[i]<<' ';
            i=i+2;
        }
        cout<<endl;}
        if(ans2==2)
{
        ofstream finish("finish.txt");
        if(!finish)
    {
        cout<<"Файла нет!";
        return;
    }
    while(str[i]!='\0')
    {
        finish<<str[i]<<' ';
        i=i+2;
    }
finish.close();}}
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
17.05.2011, 23:38     Программа отказывается сохранять в файл #4
По-моему return должен что-то возвращать; например return 0;
Delpix
delpix.ru
 Аватар для Delpix
19 / 19 / 1
Регистрация: 06.05.2011
Сообщений: 235
17.05.2011, 23:41  [ТС]     Программа отказывается сохранять в файл #5
Цитата Сообщение от kravam Посмотреть сообщение
По-моему return должен что-то возвращать; например return 0;
это не поможет сохранить результат в файл
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
17.05.2011, 23:47     Программа отказывается сохранять в файл #6
Ты уж позволь мне решать что поможет, а что нет. Исправляй.
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
17.05.2011, 23:47     Программа отказывается сохранять в файл #7
1. исправь int main() и поставь возврат return 0 или return что-то другое.
2. Если вводишь русские буквы, то с записью в файл могут быть проблемы, связанные с кодировкой. Поэкспериментируй с английскими.
3. Почему у тебя i = 1 очень далеко от вывода в файл?
Delpix
delpix.ru
 Аватар для Delpix
19 / 19 / 1
Регистрация: 06.05.2011
Сообщений: 235
17.05.2011, 23:58  [ТС]     Программа отказывается сохранять в файл #8
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
1. исправь int main() и поставь возврат return 0 или return что-то другое.
2. Если вводишь русские буквы, то с записью в файл могут быть проблемы, связанные с кодировкой. Поэкспериментируй с английскими.
3. Почему у тебя i = 1 очень далеко от вывода в файл?
return 0 - поставил (єффекта пока нет)
ввожу только англ. символы.
какое значение присвоить?
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
18.05.2011, 00:02     Программа отказывается сохранять в файл #9
В самом первом посте в проге я не вижу собственно вывода в файл?
Если найдешь - покажи...
Delpix
delpix.ru
 Аватар для Delpix
19 / 19 / 1
Регистрация: 06.05.2011
Сообщений: 235
18.05.2011, 00:07  [ТС]     Программа отказывается сохранять в файл #10
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
В самом первом посте в проге я не вижу собственно вывода в файл?
Если найдешь - покажи...
Подскажи что именно выводить. В этом участке нет cout, так что я не знаю даже как ответ выводится на экран.
C++
1
2
3
4
5
6
7
8
9
10
for (int t=0;t<size;t++)
    {
    c=str[t];
    if ((c=='.')||(c=='!')||(c=='?')) { fin=true; putchar (c); continue;}
    if ((fin)&&(c!=' ')) {putchar (toupper(c)); fin=false;}
    
    
    else putchar (c);
    
    }
-comrade-
355 / 356 / 42
Регистрация: 11.06.2010
Сообщений: 703
18.05.2011, 00:07     Программа отказывается сохранять в файл #11
Delpix, вот пробуйте.
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <iostream>
#include <fstream>
#include <string>
 
using namespace  std;
 
void InConsole(char* str)
{ 
     cout<<"  Г‚âåäèòå ñòðîêó: ";
     cin.get();
     cin.getline(str,49);
}
//////////////////////////////////////////
void InFile(char* str,char* file_name)
{
     ifstream start(file_name);
     if(!start) 
     {
         cout<<"  Г”Г*ГЁГ«Г* Г*ГҐГІ!"<<endl; 
         cout<<"  Г‚âåäèòå èìÿ ГґГ*ГЁГ«Г*: ";
         char* new_file_name;
         cin.get();
         cin.getline(new_file_name,30);
         InFile(str,new_file_name);
     }
     start.getline(str,49);
     start.close();
}
//////////////////////////////////////////
void OutConsole(char* str)
{
     cin.get();
     cout<<"  Г‘ГІГ*Г°Г*Гї ñòðîêГ*: "<<str<<endl;
     int size=strlen(str);
     char c; 
     bool fin=true;
     cout<<"  ГЌГ®ГўГ*Гї ñòðîêГ*: ";
     for(int t=0;t<size;t++)
     {
         c=str[t];
         if((c=='.')||(c=='!')||(c=='?')) { fin=true; putchar (c); continue;}
         if((fin)&&(c!=' ')) {putchar (toupper(c)); fin=false;}
         else putchar (c);
     }
}
//////////////////////////////////////////
void OutFile(char* str,char* file_name)
{
    ofstream finish("finish.txt");
    if(!finish)  cout<<"Г”Г*éëГ* Г*ГҐГІ!";
    finish<<"  Г‘ГІГ*Г°Г*Гї ñòðîêГ*: "<<str<<endl;
    int size=strlen(str);
    char c; 
    bool fin=true;
    finish<<"  ГЌГ®ГўГ*Гї ñòðîêГ*: ";
    for(int t=0;t<size;t++)
    {
       c=str[t];
       if((c=='.')||(c=='!')||(c=='?')) { fin=true; finish<<c; continue;}
       if((fin)&&(c!=' ')) { c=toupper(c); finish<<c; fin=false;}
       else finish<<c;
    }
    finish.close();
}
//////////////////////////////////////////
int main()
{
    setlocale(0,"");
    cout<<"  1. Ââîä Г± ГЄГ«Г*ГўГЁГ*òóðû;"<<endl;
    cout<<"  2. Ââîä ГЁГ§ ГґГ*éëГ*."<<endl;
r_1:cout<<"  Г‚âåäèòå Г*îìåð ГўГ*ГёГҐГЈГ® âûáîðГ*: ";
    int ans;
    cin>>ans;
    char* str;
    switch(ans)
    {
        case 1: InConsole(str); break; 
        case 2: InFile(str,"start.txt"); break;
        default: cout<<"ГЋГёГЁГЎГЄГ*!"<<endl; goto r_1;
    }
    cout<<"  1. Âûâîä Гў îêГ*ГҐ"<<endl;
    cout<<"  2. Âûâîä Гў ГґГ*éë"<<endl;
r_2:cout<<"  Г‚âåäèòå Г*îìåð ГўГ*ГёГҐГЈГ® âûáîðГ*: ";
    cin>>ans;
    switch(ans)
    {
        case 1: OutConsole(str); break;
        case 2: OutFile(str,"finish.txt"); break;
        default: cout<<"ГЋГёГЁГЎГЄГ*!"<<endl; goto r_2;
    }
    
    cout<<endl;
    system("pause");
    return 1;
}
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
18.05.2011, 00:21     Программа отказывается сохранять в файл #12
Цитата Сообщение от Delpix Посмотреть сообщение
Подскажи что именно выводить. В этом участке нет cout, так что я не знаю даже как ответ выводится на экран.
C++
1
2
3
4
5
6
7
8
for (int t=0;t<size;t++)
    {
    c=str[t];
    if ((c=='.')||(c=='!')||(c=='?')) { fin=true; putchar (c); continue;}
    if ((fin)&&(c!=' ')) {putchar (toupper(c)); fin=false;}
    else putchar (c);
    
    }
Дык putchar() же!
А вывода в файл - просто нету!
Должен быть где-то оператор finish << что-выводим;
Delpix
delpix.ru
 Аватар для Delpix
19 / 19 / 1
Регистрация: 06.05.2011
Сообщений: 235
18.05.2011, 00:26  [ТС]     Программа отказывается сохранять в файл #13
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Дык putchar() же!
А вывода в файл - просто нету!
Должен быть где-то оператор finish << что-выводим;
Это я понимаю
C++
1
2
3
4
5
6
7
8
9
10
for (int t=0;t<size;t++)
    {
    c=str[t];
    if ((c=='.')||(c=='!')||(c=='?')) { fin=true; putchar (c); continue;}
    if ((fin)&&(c!=' ')) {putchar (toupper(c)); fin=false;}
    else putchar (c);
    }
    finish<<putchar(c)<<endl;
    cout<<"\n";
    finish.close();
Вот такой код не работает, в файл сохраняет число 63, или я что то не так понял?
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
18.05.2011, 00:29     Программа отказывается сохранять в файл #14
finish << с << endl; -- по одному символу на строке будет
Delpix
delpix.ru
 Аватар для Delpix
19 / 19 / 1
Регистрация: 06.05.2011
Сообщений: 235
18.05.2011, 00:35  [ТС]     Программа отказывается сохранять в файл #15
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
finish << с << endl; -- по одному символу на строке будет
C++
1
2
3
4
5
6
7
8
for (int t=0;t<size;t++)
    {
    c=str[t];
    if ((c=='.')||(c=='!')||(c=='?')) { fin=true; putchar (c); continue;}
    if ((fin)&&(c!=' ')) {putchar (toupper(c)); fin=false;}
    else putchar (c);
    finish<<c<<endl;
    }
Этот код не просто пишет все в столбик, но и сохраняет не результат а исходник, еще и без знаков препинания.
Исходник: файл start.txt - hello. stay! where?
В результате должно в finish.txt быть- Hello. Stay! Where?
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
18.05.2011, 00:38     Программа отказывается сохранять в файл #16
О Боже!
C++
1
2
3
if ((c=='.')||(c=='!')||(c=='?')) { fin=true; finish << c;  continue;}
    if ((fin)&&(c!=' ')) { finish <<toupper(c); fin=false;}
    else finish << c;
Delpix
delpix.ru
 Аватар для Delpix
19 / 19 / 1
Регистрация: 06.05.2011
Сообщений: 235
18.05.2011, 00:46  [ТС]     Программа отказывается сохранять в файл #17
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
О Боже!
C++
1
2
3
if ((c=='.')||(c=='!')||(c=='?')) { fin=true; finish << c;  continue;}
    if ((fin)&&(c!=' ')) { finish <<toupper(c); fin=false;}
    else finish << c;
Сделал, теперь программа выводит на экран H. S! W?,
а в файл сохраняет ello tay here
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
18.05.2011, 00:49     Программа отказывается сохранять в файл #18
Что-то не то сделал, значит. Внимательно текст проверь...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2011, 01:07     Программа отказывается сохранять в файл
Еще ссылки по теме:

C++ Как создать возможность сохранять текст в html файл?
C++ Библиотека SFML отказывается подключаться g++
C++ Studio 2010 - как при компиляции сохранять файл ассемблерного листинга?

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

Или воспользуйтесь поиском по форуму:
Delpix
delpix.ru
 Аватар для Delpix
19 / 19 / 1
Регистрация: 06.05.2011
Сообщений: 235
18.05.2011, 01:07  [ТС]     Программа отказывается сохранять в файл #19
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Что-то не то сделал, значит. Внимательно текст проверь...
Скопировал, сейчас сохраняет Новая строка: 72ello. 83tay! 87here?
Вот весь весь листинг, может где че пропустил:
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <iostream>
#include <conio.h>
#include <fstream>
#include <cstring>
#include <stdio.h>
using namespace  std;
int main()
{
    setlocale (LC_ALL,"Russian");
    cout<<"1. Ввод с клавиатуры"<<endl;
    cout<<"2. Ввод из файла"<<endl;
    cout<<"Введите номер вашего выбора"<<endl;
    int ans;
    cin>>ans;
    if(ans!=1&& ans!=2)
{
    cout<<"Ошибка!";
    return 0;
}
char str[50];
    if(ans==1)
{
        cout<<"Введите строку: "<<endl;
        cin.get();
        cin.getline(str,49);
}
        if(ans==2)
{
    ifstream start("start.txt");
        if(!start)
    {
        cout<<"Фаила нет!";
        return 0;
    }
start.getline(str,49);
start.close();
}
    int i=0;
    int size=strlen(str);
    char c; 
    bool fin=true;
    cout<<"1. Вывод в окне"<<endl;
    cout<<"2. Вывод в файл"<<endl;
    cout<<"Введите номер вашего выбора "<<endl;
    int ans2;
    cin>>ans2;
    if(ans2!=1&& ans2!=2)
{
    cout<<"Ошибка! ";
    return 0;
}
    if(ans2==1)
{
        cout<<"Старая строка: "<<str<<endl;
        cout<<"Новая строка: ";
        for (int t=0;t<size;t++)
        {
        c=str[t];
        if ((c=='.')||(c=='!')||(c=='?')) { fin=true; putchar (c); continue;}
        if ((fin)&&(c!=' ')) {putchar (toupper(c)); fin=false;}
        else putchar (c);
        }
        cout<<endl;
}
        if(ans2==2)
{
        ofstream finish("finish.txt");
        if(!finish)
    {
        cout<<"Файла нет!";
        return 0;
    }
    cout<<"Старая строка: "<<str<<endl;
    finish<<"Новая строка: ";
    for (int t=0;t<size;t++)
    {
    c=str[t];
   if ((c=='.')||(c=='!')||(c=='?')) { fin=true; finish << c;  continue;}
    if ((fin)&&(c!=' ')) { finish <<toupper(c); fin=false;}
    else finish <<c;
    }
    cout<<"\n";
    finish.close();
 
}
}
Yandex
Объявления
18.05.2011, 01:07     Программа отказывается сохранять в файл
Ответ Создать тему
Опции темы

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