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

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

Восстановить пароль Регистрация
 
Zeleniy
0 / 0 / 1
Регистрация: 24.03.2010
Сообщений: 46
13.05.2010, 22:48     Ввод вывод в фаил #1
Уважаемые эксперты помогите пожалуйста. Мне необходимо написать программу, которая сортирует методом пузырька слова, записанные в отдельном файле, вывести результат на экран.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tyoma
40 / 40 / 8
Регистрация: 12.05.2010
Сообщений: 106
Завершенные тесты: 3
13.05.2010, 23:19     Ввод вывод в фаил #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
#include <vector>
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
ifstream inputfile("file.txt");
vector<string> words;
 
void sort() {
    if(words.empty())
        return;
    for(int i=0; i < words.size(); i++) { 
        for(int j = words.size()-1; j > i; j--) {
            if (words[j-1] > words[j]) {
                swap(words[j-1], words[j]);
            }
        }
    }
}
 
int main() {
    string text;
    if(!inputfile)
        cout << "Error!";
    while(getline(inputfile, text)) 
        words.push_back(text);
    sort();
    for(int i=0; i<words.size(); i++)
        cout << words[i] << endl;
    return 0;
}
Zeleniy
0 / 0 / 1
Регистрация: 24.03.2010
Сообщений: 46
13.05.2010, 23:22  [ТС]     Ввод вывод в фаил #3
А как реализовать это на С а не на С++
Tyoma
40 / 40 / 8
Регистрация: 12.05.2010
Сообщений: 106
Завершенные тесты: 3
13.05.2010, 23:58     Ввод вывод в фаил #4
и кстати если кому нужно подробнее про сортировку пузырьком она есть тут

Добавлено через 32 минуты
Дико извиняюсь но не знаю будет ли работать на с, но вроде должно

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
#include <stdio.h>
#include <stdlib.h>
 
FILE * file=fopen("file.txt", "r");
 
void sort(char **str, int col) {
    char* tmp = new char;
    for(int i=0; i < col; i++) { 
        for(int j = col-1; j > i; j--) {
            if (str[j-1] > str[j]) {
                tmp = str[j-1]; str[j-1] = str[j]; str[j] = tmp;
            }
        }
    }
}
 
int main(void) {
    char **str = new char*[20];
    for(int i=0; i<20; i++)
        str[i] = new char[20];
    int j=0;
    while(!feof(file)) {
        fscanf(file, "%s", str[j]);
        j++;
    }
    sort(str, j);
    for(int i=j-1; i>=0; i--)
        printf("%s\n",str[i]);
    return 0;
}
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
14.05.2010, 04:54     Ввод вывод в фаил #5
все new замени на malloc()

C
1
char* tmp = new char;
это зачем

C
1
char *tmp;
достаточно
Yandex
Объявления
14.05.2010, 04:54     Ввод вывод в фаил
Ответ Создать тему
Опции темы

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