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

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

Войти
Регистрация
Восстановить пароль
 
igorfors
0 / 0 / 0
Регистрация: 17.11.2013
Сообщений: 30
#1

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

01.05.2014, 18:22. Просмотров 179. Ответов 5
Метки нет (Все метки)

Помогите с заданием: Записать в файл строку. Скопировать в буфер фрагмент строки ОТ НАЧАЛА до ПЕРВОГО символа "е" во втором слове. Вывести фрагмент на экран.

Проблема в том,что мне надо,чтоб программа реагировала на второе слово. И ничего не происходило,если вдруг встретить символ "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++
Добрый вечер)) У меня небольшой вопрос. Почему первые буквы (в названии книг) не выводит на экран? Само задание: О каждой книге ...

Реализовать вывод массива объектов типа Student на консоль (файловый ввод/вывод) - C++
Как сделать чтобы список студентов выводился на экран в конце? #include&lt;iostream&gt; #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; ...

Поиск в массиве структур по заданному полю и вывод в алфавитном порядке (файловый ввод/вывод) - C++
Помогите с функцией void runFile() что бы с файла брал и выводил в алфавитном порядке список товаров, хранящихся больше месяца, стоимость...

Вывод суммы в файл (файловый ввод/вывод) - C++
Добрый день! Я пытался написать программу, которая должна вводить данные из файла №1, потом вычислять их сумму и полученное значение...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alsav22
5417 / 4813 / 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
Сообщений: 30
01.05.2014, 20:00  [ТС] #3
Условие должно касаться только второго слова. Просто,если я ввиду произвольные слова типа :Nastya Igor Petya,то выведет :Nastya Igor P,а должно вывести полностью,так как нас интересует ТОЛЬКО второе слово
alsav22
5417 / 4813 / 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
Сообщений: 30
01.05.2014, 20:33  [ТС] #5
А если брать твой первый код,то за что отвечает переменная "с"?
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.05.2014, 21:02 #6
Цитата Сообщение от igorfors Посмотреть сообщение
А если брать твой первый код,то за что отвечает переменная "с"?
Что первый, что второй - ни за что не отвечает, символы из файла в неё читаются.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2014, 21:02
Привет! Вот еще темы с ответами:

Файловый ввод / вывод - C++
Помогите пожалуйста с задачей: Записать в файл F последовательного доступа n натуральных чисел. Получить в другом файле последовательного...

Файловый ввод/вывод в С++ - C++
Здравствуйте не подскажите как организовать файловый ввод вывод в С++ Скажем есть файл 1 из него надо прочитать 2 переменные и записать...

Файловый ввод/вывод - C++
помогите пожалуйста написать их на с++))сам я в с++ не очень шарю..и если можно пожалуйста с комментами)) 1.Имеется файл в котором...

Файловый ввод/вывод в С++ - C++
1. Дан файл. В нем записана матрица 10 на 10, состоящая из вещественных чисел. Считать с файла эту матрицу. Транспонировать и вывести в...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.05.2014, 21:02
Ответ Создать тему
Опции темы

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