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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Stormageddon
0 / 0 / 0
Регистрация: 26.03.2014
Сообщений: 13
#1

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

09.04.2014, 09:52. Просмотров 175. Ответов 3
Метки нет (Все метки)

Программа должна копировать из 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);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2014, 09:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с файлами, не могу понять в чем ошибка (C++):

Не могу понять в чем ошибка - C++
Дано задание: &quot;Имеется текстовый файл. Игнорируя исходное деление этого файла на строки, переформатировать его, разбивая на строки так,...

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

Не могу понять в чем ошибка? - C++
#include &lt;stdlib.h&gt; #include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;graphics.h&gt; #include &lt;math.h&gt; #include &lt;process.h&gt; ...

Не могу понять в чем ошибка - C++
Мне нужно сделать менюшку, в которую я записываю данный в бинарный файл, но после ввода имени, у меня выдает 2 cout'a и не могу ввести...

не могу понять в чем ошибка - C++
Вот мое задание: Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Х до Х с шагом dx. Функция F: -ax^2...

Не могу понять в чем ошибка? - C++
Выдает ошибки а в чем проблемма не пойму (программирую недавно) Unit1.cpp(94): W8004 'p' is assigned a value that is never used ...

3
Ilot
Модератор
Эксперт С++
1823 / 1181 / 232
Регистрация: 16.05.2013
Сообщений: 3,118
Записей в блоге: 5
Завершенные тесты: 1
09.04.2014, 14:37 #2
Цитата Сообщение от Stormageddon Посмотреть сообщение
if ((buf[j]==' ') or (buf[j]=='\t') or (buf[j]==0) && (word[i]==0))
Что бы писать такую хрень необходимо подлючать заголовочник <ciso646> либо писать как люди ||.
0
zss
Модератор
Эксперт С++
6537 / 6099 / 2009
Регистрация: 18.12.2011
Сообщений: 15,870
Завершенные тесты: 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 (как было у Вас написано)?
0
Stormageddon
0 / 0 / 0
Регистрация: 26.03.2014
Сообщений: 13
09.04.2014, 18:07  [ТС] #4
По идее как у меня написано
0
09.04.2014, 18:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2014, 18:07
Привет! Вот еще темы с ответами:

В чем ошибка не могу понять? - C++
#include &lt;iostream.&gt; #include &lt;stdio.h&gt; #include &lt;cmath&gt; int main() { double S = 0.0; for (int i=1; i&lt;=10;...

не могу понять в чем ошибка - C++
Задание: Найти наибольший элемент каждой пары из массива А и записать их в новый массив. Получить из него массив четных положительных...

Не могу понять в чем ошибка?! - C++
Задание: -Визначити кількість вузлів дерева, в яких є два нащадки. -функция добавления елемента -функцию удаления елемента -функцію...

Не могу понять в чем ошибка - C++
Всем доброго время суток целый день бьюсь, не понимаю в чем ошибка: #include &lt;iostream&gt; using std::endl; int myFunc(unsigned short...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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