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

Ошибка. Поиск и замена слова в текстовом файле - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Метод Гаусса http://www.cyberforum.ru/cpp-beginners/thread803230.html
Суть в том что бы СЛАУ методом Гаусс с последовательным исключениям неизвестных.Вот система: 2.7x+3.3y+1.3z=2.1 3.5x-1.7y+2.8z=1.7 4.1x+5.8y-1.7z=0.8 Надо программа что бы задавали массив 3x3 и мы вадили эти числа,2.7,3.3 и так далее,потом выводилась в общем виде,как я сверху написал.И в концу уже сами решения.Очень прошу помощи
C++ Узнать, что возвращает функция Функция возвращает указатель на неизвестную структуру но как определить что содержится в структуре? это нашел в интернете struct JassStringData { DWORD vtable; DWORD refCount; http://www.cyberforum.ru/cpp-beginners/thread803223.html
Поразрядная сортировка массива C++
Дан массив двоичных чисел, нужно отсортировать его с помощью поразрядной сортировки, начиная со старшего разряда, функция должна быть рекурсивной. Никак не могу записать разбиение массива на части (вначале делится пополам, потом на 4 части и т.д.). Помогите, пожалуйста, довести программу до ума. Вот наработки: #include <cstdlib> #include <stdio.h> #include <math.h> #define L 16 int binary...
C++ Программа про Stack
Помогите пожалуйста, решить программу про Stack. The input file should be HomeworkSixInput.txt, provided by the assignment. This file has one postfix notation expression per line. (You can test your program with any data you like, but this is the file that I will use to grade the program, and your program input should use this file name by default.) The program should read each line and...
C++ Что-то не могу въехать в задание http://www.cyberforum.ru/cpp-beginners/thread803148.html
Написать функцию которая получает в качестве аргумента указатели к двум переменным типа int, которая изменяет значение указанных переменных, только тогда, когда указанная через второй аргумент переменная меньше от переменной указанной через первый аргумент. Только один вопрос. wtf?O_o void Switch(int *number1, int *number2) Не могу сообразить, в чем вообще смысл.
C++ обработка файлов товарищи подскажите что не так??? заранее благодарен!!! суть задачи следующая: "Найти максимальный из отрицательных элементов в файле целых чисел." То есть в той же папке что и программа я создаю файл допустим "1.txt" с набором цифр: 3 5 7 2 8 -2 8 -9 11 21 -32 И когда я ввожу в программе 1.txt мне должно выдать: " Максимальный из отрицательных элементов: -32 " Прога не работает!!!... подробнее

Показать сообщение отдельно
ruspat
0 / 0 / 0
Регистрация: 23.09.2012
Сообщений: 24
08.03.2013, 11:30     Ошибка. Поиск и замена слова в текстовом файле
Задача: найти и заменить одно слово на другое в текстовом файле. Я сделал вот так, но она работает не совсем правильно - теряет символ после вставляемого слово и иногда ещё и последний символ дублирует. Есть идеи, как подправить программу?

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
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <Windows.h>
 
int main ()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    FILE *in, *out;
    int i = 0, j = 0;
    char line[255], find[20], replace[20], temp;
    fpos_t start;
    bool flag = false;
 
    if ((in = fopen ("in.txt", "r")) != NULL)
    {
        printf ("Что ищем?\n");
        scanf ("%s", &find);
        printf ("На что меняем?\n");
        scanf ("%s", &replace);
 
        out = fopen ("out.txt", "w");
 
 
        while (!feof (in)) 
        {
            fscanf (in, "%c", &temp);
 
            if (temp == find[0])
            {
                fgetpos (in, &start);
 
                fscanf (in, "%c", &temp);
                for (i = 1; i < strlen (find); i++)
                    if (find[i] == temp)
                    {
                        flag = true;
                        fscanf (in, "%c", &temp);
                    }
                    else
                    {
                        flag = false;
                        break;
                    }
                    if (flag == true)
                        fputs (replace, out);
                    else
                    {
                        fsetpos (in, &start);
                        fscanf (in, "%c", &temp);
                        fputc (temp, out);
                    }
            }
            else
                fputc (temp, out);
        }
    }
 
    else
    {
        printf ("\n Ошибка: файл не найден.");
        getch();
        return 0;
    }
 
    getch();
    fclose (in);
    fclose (out);
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru