Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Ошибка программы / 7 сообщений из 7, страница 1 из 1
03.05.2006, 18:33
    #33705051
Dinijar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка программы
Когда запускаю ан выполнение все работает , но как только открывается файл то сразу ошибка выскакивает по адресу там какому то. ЧТо за дела?

// Поиск в телефонном справочнике
#include "stdio.h"
#include "conio.h"
#define FNAME "D:\My\111.txt" // имя файла
void main (){
char fname[20] = FNAME;
FILE *in;
char obr[15];
char fam[15];
char name[15];
char tel [9];
int n = 0;
puts("\пПоиск в телефонном справочнике");
if ((in = fopen(fname, "rt")) = NULL) {
printf("Ошибка открытия файла %s", fname);
getch();
return;
}
printf("Фамилия ->");
scanf("%s", &obr); // образец для поиска в БД
while (!feof(in)){
fscanf(in,"%s %s %s", &fam, &name, &tel);
if (fam == obr)
printf("%s %s %s",fam, name, tel);
}
if (n)
printf("Найдено записей: %i", n);
else
printf("Данных об абоненте %s в БД нет", obr);
fclose(in);
getch();}
...
Рейтинг: 0 / 0
03.05.2006, 18:57
    #33705121
VirusXP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка программы
насколько я помню в C имена файлов надо указывать с двумя слешами
#define FNAME "D:\\My\\111.txt"
З.Ы. могу и ошибаться т.к. не специализируюсь на C
...
Рейтинг: 0 / 0
03.05.2006, 19:32
    #33705192
ZrenBy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка программы
Тест: найди отличия

Код: plaintext
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.
// crt_fscanf.c
/* This program writes formatted
 * data to a file. It then uses fscanf to
 * read the various data back from the file.
 */

#include <stdio.h>

FILE *stream;

int main( void )
{
   long l;
   float fp;
   char s[ 81 ];
   char c;

   stream = fopen( "fscanf.out", "w+" );
   if( stream == NULL )
      printf( "The file fscanf.out was not opened\n" );
   else
   {
      fprintf( stream, "%s %ld %f%c", "a-string", 
                65000 ,  3 . 14159 , 'x' );
      // Security caution!
      // Beware loading data from a file without confirming its size,
      // as it may lead to a buffer overrun situation.
      /* Set pointer to beginning of file: */
      fseek( stream, 0L, SEEK_SET );

      /* Read data back from file: */
      fscanf( stream, "%s", s );
      fscanf( stream, "%ld", &l );

      fscanf( stream, "%f", &fp );
      fscanf( stream, "%c", &c );

      /* Output data read: */
      printf( "%s\n", s );
      printf( "%ld\n", l );
      printf( "%f\n", fp );
      printf( "%c\n", c );

      fclose( stream );
   }
}

...
Рейтинг: 0 / 0
03.05.2006, 22:41
    #33705397
Dinijar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка программы
Что т я не понял к чему этот пріимер тестовый
...
Рейтинг: 0 / 0
04.05.2006, 07:17
    #33705554
Станислав C.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка программы
DinijarКогда запускаю ан выполнение все работает , но как только открывается файл то сразу ошибка выскакивает по адресу там какому то. ЧТо за дела?
Код: plaintext
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.
// Поиск в телефонном справочнике
 #include "stdio.h"
 #include "conio.h"
#define FNAME "D:\My\111.txt" // имя файла
 void main (){
char fname[ 20 ] = FNAME;
FILE *in;
char obr[ 15 ];
char fam[ 15 ];
char name[ 15 ];
char tel [ 9 ];
int n =  0 ;
puts("\пПоиск в телефонном справочнике");
if ((in = fopen(fname, "rt")) = NULL) {
printf("Ошибка открытия файла %s", fname);
getch();
return;
}
printf("Фамилия ->");
scanf("%s", &obr); // образец для поиска в БД
while (!feof(in)){
fscanf(in,"%s %s %s", &fam, &name, &tel);
if (fam == obr)
printf("%s %s %s",fam, name, tel);
 }
if (n)
printf("Найдено записей: %i", n);
else
printf("Данных об абоненте %s в БД нет", obr);
fclose(in);
getch();}

Проблема, ИМХО, в операторе:
[src c+]
if ((in = fopen(fname, "rt")) = NULL)
[/src]А правильно должно быть:
[src c+]
if ((in = fopen(fname, "rt")) == NULL)
[/src]
...
Рейтинг: 0 / 0
04.05.2006, 07:19
    #33705556
Станислав C.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка программы
DinijarКогда запускаю ан выполнение все работает , но как только открывается файл то сразу ошибка выскакивает по адресу там какому то. ЧТо за дела?
Код: plaintext
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.
// Поиск в телефонном справочнике
 #include "stdio.h"
 #include "conio.h"
#define FNAME "D:\My\111.txt" // имя файла
 void main (){
char fname[ 20 ] = FNAME;
FILE *in;
char obr[ 15 ];
char fam[ 15 ];
char name[ 15 ];
char tel [ 9 ];
int n =  0 ;
puts("\пПоиск в телефонном справочнике");
if ((in = fopen(fname, "rt")) = NULL) {
printf("Ошибка открытия файла %s", fname);
getch();
return;
}
printf("Фамилия ->");
scanf("%s", &obr); // образец для поиска в БД
while (!feof(in)){
fscanf(in,"%s %s %s", &fam, &name, &tel);
if (fam == obr)
printf("%s %s %s",fam, name, tel);
 }
if (n)
printf("Найдено записей: %i", n);
else
printf("Данных об абоненте %s в БД нет", obr);
fclose(in);
getch();}

Сорри. Проблема с тэгами... :)
Повторю:
Проблема, ИМХО, в операторе:
Код: plaintext
1.
if ((in = fopen(fname, "rt")) = NULL) 
А правильно должно быть:
Код: plaintext
1.
if ((in = fopen(fname, "rt")) == NULL) 
...
Рейтинг: 0 / 0
04.05.2006, 10:54
    #33706061
ZrenBy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка программы
>>Что т я не понял к чему этот пріимер тестовый

Вот к этому . . .

Dinijar
. . .
char fam[15];
char name[15];
char tel [9];
. . .
fscanf(in,"%s %s %s", & fam, & name, & tel);


& - лишние
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Ошибка программы / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]