Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.06.2009, 13:39   #1
lubafffka
Пользователь
 
Регистрация: 05.11.2008
Сообщений: 46
По умолчанию помогите найти ошибку

помогите найти ошибку пожалуйста
программка должна искать строку в файле введенную с клавиатуры
Код:
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int fun(FILE*, char*);
void main(){
FILE *f;
char str[3], name[30];
int n;
printf("Vvedi imya faila\n");
scanf("%s",name);
if((f=fopen(name,"r"))==NULL)
{cout<<"oshibka\n";}
printf("Vvedi stroky\n");
scanf("%s",str);
n=fun(f,str);
if (n=0) printf("not found\n");
else printf("stroka naidena\n");
getch;}

int fun(FILE *f, char *str)
{char stroka[3];
int n=0;
while (!feof(f))
fgets(stroka,3,f);
if(stroka==str) n=1;
return n;}
lubafffka вне форума Ответить с цитированием
Старый 16.06.2009, 15:24   #2
assasin
Форумчанин
 
Регистрация: 27.04.2009
Сообщений: 123
По умолчанию

Ошибки убрал
Код:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
using namespace std;
int fun(FILE *f, char *str)
{
char stroka[4];
int n=0;
while (!feof(f))
{
fgets(stroka,4,f);
if(strcmp(stroka,str) ==0) 
{
	n=1;
	return n;
}
}
return n;
}
int main()
{
FILE *f;
char str[4], name[30];
int n;
printf("Vvedi imya faila\n");
scanf("%s",name);
if((f=fopen(name,"r"))==NULL)
{
	cout<<"oshibka\n";
	exit(1);
}
printf("Vvedi stroky\n");
scanf("%s",str);
n=fun(f,str);
if (n==0) 
{
	printf("not found\n");
}
else 
{
	printf("stroka naidena\n");
}
fclose(f);
getch ();
return 0;
}
<= P.S. если я тебе помог нажми весы слева <=

Последний раз редактировалось assasin; 16.06.2009 в 15:32.
assasin вне форума Ответить с цитированием
Старый 16.06.2009, 15:32   #3
assasin
Форумчанин
 
Регистрация: 27.04.2009
Сообщений: 123
По умолчанию

Только алгоритм мне честно говоря не понятен...
<= P.S. если я тебе помог нажми весы слева <=
assasin вне форума Ответить с цитированием
Старый 16.06.2009, 15:58   #4
Merkator
Читаю Кормена
Пользователь
 
Аватар для Merkator
 
Регистрация: 28.12.2008
Сообщений: 46
По умолчанию

Мне кажется у вас у всех ошибки, вы не пишете & перед переменными в scanf` ах.
MiniGW компилятор без этого вылетает.
Merkator вне форума Ответить с цитированием
Старый 16.06.2009, 18:11   #5
assasin
Форумчанин
 
Регистрация: 27.04.2009
Сообщений: 123
По умолчанию

вполне возможно, не пользуюсь сишными функциями))) тут уж автор сам пусть смотрит
<= P.S. если я тебе помог нажми весы слева <=
assasin вне форума Ответить с цитированием
Старый 16.06.2009, 21:53   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Merkator
Мне кажется у вас у всех ошибки, вы не пишете & перед переменными в scanf` ах.
MiniGW компилятор без этого вылетает.
В данном случае аргументом является указатель на нулевой символ строки. Поэтому амперсанд не нужен.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти ошибку lubafffka Паскаль, Turbo Pascal, PascalABC.NET 1 18.12.2008 09:42
Помогите найти ошибку alex2008ean Паскаль, Turbo Pascal, PascalABC.NET 2 17.12.2008 15:43
Помогите найти ошибку Рената Паскаль, Turbo Pascal, PascalABC.NET 2 05.01.2008 04:29