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

Работа с файлами, не могу понять в чем ошибка - C++

Восстановить пароль Регистрация
 
Stormageddon
0 / 0 / 0
Регистрация: 26.03.2014
Сообщений: 13
09.04.2014, 09:52     Работа с файлами, не могу понять в чем ошибка #1
Программа должна копировать из f1 в f2 строки где есть повторение слов...
Написал вот, строка которая выдает ошибку выделена комментарием
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 <iostream>
#include <fstream>
#include <cstdlib>
#define MAX_SIZE 1024 
 
void str(void)
 {
FILE *f1, *f2;
char buf[MAX_SIZE];
f1 = fopen("f1.txt", "r"); 
if(!f1) 
return;
 
f2 = fopen("f2.txt", "w"); 
 
while(!feof(f1)) 
{
fgets(buf, MAX_SIZE, f1); 
 
for (int a=0;a<MAX_SIZE;a++)
if(buf[a]=='\r' or buf[a]=='\n') 
{
buf[a]=0;
break;
}
char word1[MAX_SIZE];
int i=0;
int j=0;
for(int k=0; k<MAX_SIZE; k++)
{
while(buf[k]==' ' or buf[k]=='\t')
k++; 
i=0;
while(buf[k]!=' ' && buf[k]!='\t' && buf[k]!=0)
word1[i++]=buf[k++]; 
word1[i]=0; 
 
j=k; 
while(buf[j]!=0)
{
while(buf[j]==' ' or buf[j]=='\t')
j++;
bool equal=true;
i=0;
while(buf[j]!=' ' && buf[j]!='\t' && word1[i]!=0)
{
if (word1[i]!=buf[j])
{
equal=false;
break;
}
i++;
j++;
}
if (equal && i>0) 
{
if ((buf[j]==' ') or (buf[j]=='\t') or (buf[j]==0) && (word[i]==0)) // <--- Ошибка здесь
{
fprintf(f2, "%s\n", buf); 
goto A;
}
}
}
 
}
 
A: 
}
 
fclose(f1); 
fclose(f2);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2014, 09:52     Работа с файлами, не могу понять в чем ошибка
Посмотрите здесь:

Не могу понять в чем ошибка C++
C++ не могу понять в чем ошибка
Не могу понять в чем ошибка C++
Не могу понять в чем ошибка C++
C++ не могу понять в чем ошибка
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
09.04.2014, 14:37     Работа с файлами, не могу понять в чем ошибка #2
Цитата Сообщение от Stormageddon Посмотреть сообщение
if ((buf[j]==' ') or (buf[j]=='\t') or (buf[j]==0) && (word[i]==0))
Что бы писать такую хрень необходимо подлючать заголовочник <ciso646> либо писать как люди ||.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,164
Завершенные тесты: 1
09.04.2014, 16:22     Работа с файлами, не могу понять в чем ошибка #3
C++
1
if ( (buf[j]==' ' || buf[j]=='\t' || buf[j]==0) && word[i]==0)
Уточните word[i] надо было проверять в любом случае,
или только если buf[j]==0 (как было у Вас написано)?
Stormageddon
0 / 0 / 0
Регистрация: 26.03.2014
Сообщений: 13
09.04.2014, 18:07  [ТС]     Работа с файлами, не могу понять в чем ошибка #4
По идее как у меня написано
Yandex
Объявления
09.04.2014, 18:07     Работа с файлами, не могу понять в чем ошибка
Ответ Создать тему
Опции темы

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