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

Поиск строки в файле - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 50, средняя оценка - 4.96
Alex90
17 / 17 / 1
Регистрация: 30.01.2009
Сообщений: 103
21.02.2009, 21:29     Поиск строки в файле #1
Добрый вечер, Посоветуйте, как можно реализовать поиск строки в одном файле "log.txt" и если нету этой строки то записать ее в файлы "log.txt" и "result.txt" если она уже в "log.txt" то нечего некуда ненужно записывать. Еще строку которую нужно искать в первом файле вводится в ручную (вот здесь у меня и возникает ошибка если я делаю строку которую мне нужно искать статической то проблем не возникает, но а с этим кодом у меня возникают проблема дайте совет почему?)

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
#include <stdio.h>
#include <string.h>
 
void test(char a[25])
{
 FILE* log_file;
 FILE* result_file;
 char current_str[500];
// char a[80];
 
 /*if(!(log_file=fopen("log.txt", "r")))
 {
  printf("Open log_file failed.\n");
  return 0;
 }
*/ 
 
    log_file=fopen("log.txt", "r");
    result_file=fopen("result.txt", "w");
    fgets(current_str, 500, log_file);
 
 while(!(feof(log_file)))
   {   
    fgets(current_str, 500, log_file);
    
    if (ferror(log_file))
     {
        printf("error");
        
     }
    if (((strchr(current_str, '+'))==NULL)&&((strchr(current_str, '*'))==NULL))
     {
      if (((strstr(current_str, a))!=NULL))//&&((!strstr(current_str,""))!=NULL))
        {
         fputs(current_str, result_file);           
        }     
     } 
   }
    fclose(log_file);
    fclose(result_file);    
 }
int main()   
{
    cout<<"Input first word\n";   
    cin>>A;   
    test(a);
system("PAUSE");    
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2009, 21:29     Поиск строки в файле
Посмотрите здесь:

C++ Поиск строки в файле и её перезапись
Поиск в файле. C++
C++ Поиск, сортировка и удаление строки в txt файле
Поиск самой длинной строки в файле C++
C++ Поиск в файле
C++ Поиск нужной строки во внешнем файле ( блокнот )
Поиск строки в файле C++
C++ Оператор преобразования типа и его эквивалентные замены, поиск строки в текстовом файле , содержащей заданный
Поиск строки в файле по заданному слову C++
C++ Поиск в файле
Поиск строки в файле C++
Поиск строки с необходимым словом в файле C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alexiski
Любитель давать советы
 Аватар для Alexiski
338 / 130 / 2
Регистрация: 12.01.2009
Сообщений: 511
21.02.2009, 21:57     Поиск строки в файле #2
Потому что та строка а, которая читается в теле процедуры main и передается дальше в процедуру test, нигде не объявлена.

Надо написать примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void test(char a[])  
{
  // ...
}  
 
int main()     
{  
    char a[25];
    cout<<"Input first word\n";     
    cin>>a;     
    test(a);
    getch();  
    return 0;  
}
Alex90
17 / 17 / 1
Регистрация: 30.01.2009
Сообщений: 103
21.02.2009, 23:20  [ТС]     Поиск строки в файле #3
Alexiski, вот такое в журнале компиляции

make.exe -f "C:\Testy\Finder\Makefile.win" all
g++.exe -c main.cpp -o main.o -I"F:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"F:/Dev-Cpp/include/c++/3.4.2/backward" -I"F:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"F:/Dev-Cpp/include/c++/3.4.2" -I"F:/Dev-Cpp/include" -I"F:/Dev-Cpp/" -I"F:/Dev-Cpp/include/common/wx/msw" -I"F:/Dev-Cpp/include/common/wx/generic" -I"F:/Dev-Cpp/include/common/wx/fl" -I"F:/Dev-Cpp/include/common/wx/gizmos" -I"F:/Dev-Cpp/include/common/wx/html" -I"F:/Dev-Cpp/include/common/wx/mmedia" -I"F:/Dev-Cpp/include/common/wx/net" -I"F:/Dev-Cpp/include/common/wx/ogl" -I"F:/Dev-Cpp/include/common/wx/plot" -I"F:/Dev-Cpp/include/common/wx/protocol" -I"F:/Dev-Cpp/include/common/wx/stc" -I"F:/Dev-Cpp/include/common/wx/svg" -I"F:/Dev-Cpp/include/common/wx/xml" -I"F:/Dev-Cpp/include/common/wx/xrc" -I"F:/Dev-Cpp/include/common/wx" -I"F:/Dev-Cpp/include/common"

main.cpp: In function `void test(char*)':
main.cpp:36: warning: NULL used in arithmetic

main.cpp: In function `int main()':
main.cpp:50: error: `cout' undeclared (first use this function)
main.cpp:50: error: (Each undeclared identifier is reported only once for each function it appears in.)
main.cpp:51: error: `cin' undeclared (first use this function)
main.cpp:53: error: `getch' undeclared (first use this function)

make.exe: *** [main.o] Error 1

Выполнение завершено
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
21.02.2009, 23:32     Поиск строки в файле #4
Забавно ты пишешь. Если уж подключаешь сишные либы, то и юзай их. Никаких cout, cin. Используй printf, scanf. getch() можешь убрать, у тебя там system вызывается.
Kalashnikov
 Аватар для Kalashnikov
14 / 14 / 1
Регистрация: 08.02.2009
Сообщений: 63
21.02.2009, 23:33     Поиск строки в файле #5
а подинклудить библиотеки непробывал?
#include <iostream> ну и пространство имен using namespace std;(илиже пиши std::cout, std::cin) и в добавок #include <conio.h>
Yandex
Объявления
21.02.2009, 23:33     Поиск строки в файле
Ответ Создать тему
Опции темы

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