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

Работа с файлами. Редактирование файла - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дан текстовый файл F. Найти, сколько раз встречается в нем слово S http://www.cyberforum.ru/cpp-beginners/thread17254.html
Просто без выходная ситуация надо решить задачи... Просто умоляю кто нибудь ПАМАГИТЕ!!!!!!!!!!!!:help::help::help: 1)Дан файл F, содержащий сведения о кубиках: размер (длина его ребра), его цвет и...
C++ Программирование массива указателей Подскажите, в чем различие выделения памяти для массива указателей char **term;: term = (char **)malloc(10); и *term = (char *)malloc(10); И как правильно удалить память для второго случая, если... http://www.cyberforum.ru/cpp-beginners/thread17248.html
C++ Вопрос от нуба)
std::cout << "Hello World!\n"; return 0; } я поробывал ее написать в Борланде 6 (так как диск с книгой не удолось запустить) чето нечего не вышло( патом поставил Вижуал студию 6 там узнал что они...
Как выйти?, если условие не выполняется C++
Я хотел сделать уравнение, всё пашет, но опять не получается с выходом после "RESHENIY NET". Например ввожу х=-1 и мне ввыводит сообщение "RESHENIY NET" и выдаёт ошибку т.к. он продолжает идти...
C++ Работа с файлами: fseek(), ftell(), etc... http://www.cyberforum.ru/cpp-beginners/thread17235.html
Разбираю работу с файлами (прошу не пинать за убогость исходника), и наткнулся на одну загвоздку: программа компилируется без ошибок, но при запуске вылетает с ошибкой: "Инструкция по адресу...
C++ Написать функцию, которая переворачивает число Помогите, пожалуйста с задачкой! Задачка: Дано натуральное число n и натуральные числа а1, а2... аn (n < 100). Переделать все данные числа так, чтобы цифры были записаны в обратном порядке... подробнее

Показать сообщение отдельно
=TrappeR=
3 / 3 / 1
Регистрация: 02.12.2008
Сообщений: 11
02.12.2008, 19:29
Программу отладил в C++Builder:
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
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <locale>
int main()
{
    setlocale (LC_ALL, ".1251");
    FILE *f;
    f = fopen( "read.txt", "r");
    if (f==NULL) {
        printf("File "read.txt" not found.\n");
        return -1;
    }
    FILE *g;
    g = fopen( "write.txt", "w");
    if (g==NULL) {
        printf("File "write.txt" could not be created.\n");
        return -1;
    }
 
    char c, buf[100] = "";
    int i = 0;
    do {
        /* цикл сохранения во временную переменную всех символов
           кроме пробела и одиночных символов */
        c = fgetc(f);
        if (c != ' ' && c != EOF)
            buf[i++] = c;
        else {
            if (i > 1) {
                fputs(buf, g);
                printf("%s", buf);
            }
            i = 0;
        }
        buf[i] = '\0';
    } while (c != EOF);
 
    fclose(f);
    fclose(g);
    printf("\nГотово! Смотри что получилос в файле "test_out.txt".\n");
    getch();
}
Добавлено через 21 минуту 46 секунд
Держи отлаженный исходник:
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
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <locale>
int main()
{
    setlocale (LC_ALL, ".1251");
    FILE *f;
    f = fopen( "read.txt", "r");
    if (f==NULL) {
        printf("File "read.txt" not found.\n");
        return -1;
    }
    FILE *g;
    g = fopen( "write.txt", "w");
    if (g==NULL) {
        printf("File "write.txt" could not be created.\n");
        return -1;
    }
 
    char c, buf[100] = "";
    int i = 0;
    do {
        /* цикл сохранения во временную переменную всех символов
           кроме пробела и одиночных символов */
        c = fgetc(f);
        if (c != ' ' && c != EOF)
            buf[i++] = c;
        else {
            if (i > 1) {
                fputs(buf, g);
                printf("%s", buf);
            }
            i = 0;
        }
        buf[i] = '\0';
    } while (c != EOF);
 
    fclose(f);
    fclose(g);
    printf("\nГотово! Смотри что получилос в файле "test_out.txt".\n");
    getch();
}
P.S. и не объявляй переменную в цикле:
C++
1
2
3
while( true ) {
    int c = fgetc(f);
    -//-//-
Добавлено через 25 минут 10 секунд
Дополненная программа с использованием командной строки:
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
#include <stdio.h>
#include <conio.h>
int main(int argc, char *argv[ ])
{
    FILE *fin;
    FILE *fout;
    if (argc != 3) {  /* Проверка командной строки */
        printf("\n Формат вызова программы:");
        printf("\n copyfile.exe");
        printf("\n файл-источник файл-приемник");
    }
    if ((fin = fopen(argv[1], "r")) == NULL) {
        perror(argv[1]);
        return 1;
    }
    if ((fout = fopen(argv[2], "w")) == NULL) {
        perror(argv[2]);
        return 1;
    }
 
    char ch, buf[100] = "";
    int i = 0;
    do {  /* цикл сохранения во временную переменную всех символов
             кроме пробела и одиночных символов */
        ch = fgetc(fin);
        if (ch != ' ' && ch != EOF)
            buf[i++] = ch;
        else {
            if (i > 1) {
                fputs(buf, fout);
                printf("%s", buf);
            }
            i = 0;
        }
        buf[i] = '\0';
    } while (ch != EOF);
 
    fclose(fin);
    fclose(fout);
    getch( );
    return 0;
}
...что не понятно спрашивай.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru