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

Файловый ввод-вывод(доработка) - C++

Восстановить пароль Регистрация
 
igorfors
0 / 0 / 0
Регистрация: 17.11.2013
Сообщений: 29
01.05.2014, 18:22     Файловый ввод-вывод(доработка) #1
Помогите с заданием: Записать в файл строку. Скопировать в буфер фрагмент строки ОТ НАЧАЛА до ПЕРВОГО символа "е" во втором слове. Вывести фрагмент на экран.

Проблема в том,что мне надо,чтоб программа реагировала на второе слово. И ничего не происходило,если вдруг встретить символ "e" в первом или втором слове.

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
#include "stdafx.h"
#include <iostream>
#include <fstream>
using namespace std;
 int main(){
 
char ch[30];
char e='e';
int a=0;
ofstream out("test1.txt",ios::out | ios::binary);//Запись файла
if(!out){cout<<"Can't open file!"<<endl;
return 1;}
 
cout<<"Enter string: ";
    cin.get(ch,30);
    out<<ch<<endl;
    
 
out.close();
 
ifstream in("test1.txt",ios::in | ios::binary);//Чтение файла
in.open("test1.txt",ios::binary);
if(!out){cout<<"Can't open file!"<<endl;
return 1;}
 
cout<<"Result: ";
 
 
for(int i=0;i<strlen(ch);i++)
    
if(ch[i]==' '&& ch[i+1]!=' ' ){
    a=a+1;
    if(ch[i]!=e && a==1){
        cout<<ch[i];}
    else a=a+0; break;}
else{cout<<"There is one word here";break;}
               
    
    
cout<<'\n';
in.close();
system("pause");
}
Добавлено через 1 час 39 минут
И ничего не происходило,если встретит "е" в первом или ТРЕТЬЕМ слове!!!!!!!!!!!!Ошибочно написал
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2014, 18:22     Файловый ввод-вывод(доработка)
Посмотрите здесь:

C++ Файловый ввод-вывод.
C++ Файловый ввод/вывод
Файловый ввод\вывод C++
C++ Файловый ввод/вывод
C++ Файловый ввод вывод
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.05.2014, 19:50     Файловый ввод-вывод(доработка) #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
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
#include <fstream>
using namespace std;
 
int main(){
 
char ch[30];
char e='e';
int a=0;
ofstream out("test1.txt");//Запись файла
if(!out){cout<<"Can't open file!"<<endl;
return 1;}
 
cout<<"Enter string: ";
    cin.get(ch,30);
    out<<ch<<endl;
    
 
out.close();
 
ifstream in("test1.txt");//Чтение файла
//in.open("test1.txt");
if(!in){cout<<"Can't open file!"<<endl;
return 1;}
 
cout<<"Result: ";
 
char c;
bool flag = false;
while (in.get(c))
{
    if (c == ' ')
        flag = true;
    if (flag && c == e)
        break;
    cout << c;
}
 
 
//for(int i=0;i<strlen(ch);i++)
//    
//if(ch[i]==' '&& ch[i+1]!=' ' )
//{
//    a=a+1;
//    if(ch[i]!=e && a==1){
//        cout<<ch[i];}
//    else 
//        a=a+0; 
//    break;
//}
//else{cout<<"There is one word here";break;}
               
cout<<'\n';
in.close();
system("pause");
}
igorfors
0 / 0 / 0
Регистрация: 17.11.2013
Сообщений: 29
01.05.2014, 20:00  [ТС]     Файловый ввод-вывод(доработка) #3
Условие должно касаться только второго слова. Просто,если я ввиду произвольные слова типа :Nastya Igor Petya,то выведет :Nastya Igor P,а должно вывести полностью,так как нас интересует ТОЛЬКО второе слово
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.05.2014, 20:18     Файловый ввод-вывод(доработка) #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
#include <fstream>
using namespace std;
 
int main(){
 
char ch[30];
char e='e';
int a=0;
ofstream out("test1.txt");//Запись файла
if(!out){cout<<"Can't open file!"<<endl;
return 1;}
 
cout<<"Enter string: ";
    cin.get(ch,30);
    out<<ch<<endl;
    
 
out.close();
 
ifstream in("test1.txt");//Чтение файла
if(!in){cout<<"Can't open file!"<<endl;
return 1;}
 
cout<<"Result: ";
 
char buff[30];
char c;
int n_s = 0;
int i = 0;
bool flag = false;
while (in.get(c))
{
    if (c == ' ')
        ++n_s;
    if (n_s == 1 && c == e)
    {
        buff[i] = '\0';
        cout << buff << endl;
        flag = true;
        break;
    }
    buff[i++] = c;
    if (i == 30)
        break;
}
if (!flag)
    cout << "Not found!" <<endl;
 
 
cout<<'\n';
in.close();
system("pause");
}
Добавлено через 1 минуту
Цитата Сообщение от igorfors Посмотреть сообщение
фрагмент строки ОТ НАЧАЛА до ПЕРВОГО символа "е" во втором слове.
ОТ НАЧАЛА - от начала строки?
igorfors
0 / 0 / 0
Регистрация: 17.11.2013
Сообщений: 29
01.05.2014, 20:33  [ТС]     Файловый ввод-вывод(доработка) #5
А если брать твой первый код,то за что отвечает переменная "с"?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.05.2014, 21:02     Файловый ввод-вывод(доработка) #6
Цитата Сообщение от igorfors Посмотреть сообщение
А если брать твой первый код,то за что отвечает переменная "с"?
Что первый, что второй - ни за что не отвечает, символы из файла в неё читаются.
Yandex
Объявления
01.05.2014, 21:02     Файловый ввод-вывод(доработка)
Ответ Создать тему
Опции темы

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