powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Ошибка программы
7 сообщений из 7, страница 1 из 1
Ошибка программы
    #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
Ошибка программы
    #33705121
Фотография VirusXP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насколько я помню в C имена файлов надо указывать с двумя слешами
#define FNAME "D:\\My\\111.txt"
З.Ы. могу и ошибаться т.к. не специализируюсь на C
...
Рейтинг: 0 / 0
Ошибка программы
    #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
Ошибка программы
    #33705397
Dinijar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что т я не понял к чему этот пріимер тестовый
...
Рейтинг: 0 / 0
Ошибка программы
    #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
Ошибка программы
    #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
Ошибка программы
    #33706061
ZrenBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Что т я не понял к чему этот пріимер тестовый

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

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


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


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