С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Работа с файлами - C++

03.04.2014, 11:26. Просмотров 316. Ответов 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
#include<iostream.h>;
#include<fstream.h>;
#include<iomanip>;
 
const int N=100;
struct strMark
{
char A[N+1];
char Mk;
char space;
};
 
void main()
{
strMark s;
fstream in, out;
int i,j;
s.space=' ';
cout<<" "<<endl;
in.open("in.txt",ios::in);
i=-1;
do
    {i++;
     in>>s.A[i];
     if((i==101)||(in.eof()==1)) s.A[i]=s.Mk;
    }
while(s.A[i]!=s.Mk);    
in.close();
 
i=1; 
while(s.A[i]!=s.Mk)
    {
     if((s.A[i]==s.space)&&(s.A[i-1]==s.space))
        {j=i;
         while(s.A[j]!=s.Mk)
              {s.A[j]=s.A[j+1];
               j++;
              } 
        s.Mk--;   
        }
    i++;
    }
out.open("out.txt",ios::out);
i=-1;
do
    {i++;
     out<<"hello";
     out<<s.A[i];
    }
while(s.A[i]!=s.Mk);    
out.close();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2014, 11:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с файлами (C++):

Работа с файлами - C++
Всем добрый день. Помогите кто-нибудь с этим заданием: о каждом из студентов известны фамилия и информация о том, имеет ли студент зачет по...

Работа с файлами - C++
Задача программы такова - пользователь вводит строку адреса , например C:\blablabla и программа считывает все размеры файлов хранящихся в...

работа с файлами - C++
Дан текстовый файл и строка s. Если самая длинная строка файла не совпадает со строкой s, то строку s дописать в конец файла. Помогите...

Работа с файлами - C++
1) Преобразовать строку, заменяя каждую цифру соответствующим ей числом символов нижнего подчеркивания. Например: «3 слона» -&gt; «_ _ _слона»...

Си, работа с файлами - C++
помогите пожалуйста написать прогамму на Си, вот само задание: подготовьте текстовый файл, который состоит из строк, содержащих...

работа с файлами - C++
Текст берётся из файла. Ка ксделать используя библиотеку fstream знаю, но надо сделать без неё то есть простые fread, fwrite и т.д.)....

2
don_keyhot
5 / 5 / 2
Регистрация: 02.04.2014
Сообщений: 60
03.04.2014, 13:30 #2
1) хидеры поправь:
C++
1
2
3
#include <iostream>
#include <fstream>
#include <iomanip>
imho, циклы какие-то мутные, тут все прозрачно, цикл for так и просится
короче вот поправленный вариант, все выводит:
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
#include <iostream>
#include <fstream>
#include <iomanip>
 
using namespace std;
 
const int N = 100;
struct strMark
{
    char A[N + 1];
    char Mk;
    char space;
};
 
 
int main()
{
    strMark s;
 
    fstream in, out;
    
    int i, j;
    s.space = ' ';
    cout << " " << endl;
    
 
    in.open("in.txt", ios::in);  // попытка отрытия файла
    if (in.is_open())            // если удачна, т.е. файл открыт
    {                            // то заносим из него данные в массив A
        i = -1;
        do
        {
            i++;
            in >> s.A[i];
            if ((i == 101) || (in.eof() == 1)) s.A[i] = s.Mk;
        } while (s.A[i] != s.Mk);
    }
    else // попытка отрытия НЕ удачна
    {    // заполняем массив вручную
        for (i = 0; i < 100; i++)
            s.A[i] = i;
        s.A[100] = s.space;
    }
    in.close();
 
    i = 1;
    while (s.A[i] != s.Mk)
    {
        if ((s.A[i] == s.space) && (s.A[i - 1] == s.space))
        {
            j = i;
            while (s.A[j] != s.Mk)
            {
                s.A[j] = s.A[j + 1];
                j++;
            }
            s.Mk--;
        }
        i++;
    }
    
    out.open("out.txt", ios::out);
    out << "hello\n";              // вынес из цикла запись приветствия
 
    i = -1;
    do
    {
        i++;
        //out << "hello\n";        // а зачем здесь это в цикле выводить перед каждым символом?..
        out << s.A[i] << " ";      // выводим символ в файл "out.txt"
        cout << s.A[i] << " ";     // отладка - вывод на экран
 
        // цикл пока НЕ пробел = последний символ в массиве
        // хотя я НЕ понял, а зачем такое мутное условие цикла?
        // мы ведь знаем количество элементов в массиве, так что тут лучше через цикл for() 
        // типа так:
        //  for (i = 0; i < 100; i++)
        //      out << s.A[i] << " ";
    } while (s.A[i] != s.Mk);      
    
    out.close();
 
    cout << endl;
    system("pause");
    
    return 0;
}
Добавлено через 8 минут
зря я заносил в массив символя с 0, управляющие попадут, лучше наверное будет так:
C++
1
  s.A[i] = 48+i;
0
Tan972
0 / 0 / 0
Регистрация: 27.03.2014
Сообщений: 7
03.04.2014, 14:47  [ТС] #3
Спасибо большое!
только она должна заменить последовательности пробелов в заданной строке одним пробелом...

Добавлено через 7 минут
Спасибо большое!
только она должна заменить последовательности пробелов в заданной строке одним пробелом...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2014, 14:47
Привет! Вот еще темы с ответами:

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

Работа с файлами - C++
#include&lt;iostream&gt; using namespace std; void main() { FILE *f,*g; int a,kol=0; fopen_s(&amp;f,&quot;D:\\1.txt&quot;,&quot;r&quot;); ...

Работа с файлами - C++
Программа полностью рабочая. Кроме одного момента. #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;clocale&gt;...

работа с файлами - C++
в программе не работает удаление... что делать?? #include &quot;stdafx.h&quot; #include &lt;string.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; ...


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

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

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