Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53

Работа с текстом, функции fopen и fclose

24.06.2012, 16:03. Показов 2905. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья, помогите! Не могу понять в чём тут дело. я убрал поток и начал использовать функции fopen и fclose. Но при компиляции программа вылетает.

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
#include "stdafx.h" 
#include <iostream> 
#include <fstream> 
using namespace std; 
int main() 
{   setlocale(LC_ALL,"Russian"); 
    //int x;
   // ifstream infile; // входной поток
   // infile.open("Text.txt");  // открываем файл  
    char s[256];
    cin>>s;
    FILE *Text;
        if((Text=fopen(s, "rw"))==NULL)
            cout<< "no";
        size_t const n=(sizeof(Text));
    char buffer[n]; 
    char str[10]; // вводим последовательность символов    
    cout << "Введите последовательность символов ( вводим на английском ) "; 
    cin >> str; 
        //while(!infile.eof()) // считываем до конца файла 
    while(buffer[n]=fgetc(Text)!=EOF)
        { 
            //infile >> buffer; // считываем в буфер 
            if(strstr(buffer,str) != NULL)  // strstr возвращает указатель
            {
              cout << "Совпадение обнаружено " << str << endl; // совпадение обнаружено выходим из цикла                                
            } else
            { cout << "Совпадений нет"<< endl;}
        }
        
        system("Pause"); 
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.06.2012, 16:03
Ответы с готовыми решениями:

Fopen, fputs, fclose при записи в файл разными кодировками
Столкнулся с проблемой. При парсинге сайтов и записи ссылок со страницы, мне нужна кодировка файла windows-1251. но все файлы в разных...

Функции работа с текстом
В VB есть функции: Left$ Right$ Mid$ какие подобныя функция есть в Delphi?

Warning: fopen(t3.txt) [function.fopen]: failed to open stream:
Привет, у меня возникли такиe проблемы: 1.веду поиск в папке Texte. Папка находится в папке Scripte php4. $dir =...

13
Twilight Parasite
 Аватар для Invader_Zim
154 / 150 / 7
Регистрация: 21.07.2011
Сообщений: 908
24.06.2012, 16:04
Dady, Какая ошибка? Ошибку сюды!
1
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
24.06.2012, 16:08  [ТС]
Цитата Сообщение от Invader_Zim Посмотреть сообщение
Какая ошибка? Ошибку сюды
Появляется пустая консоль, при вводе туда чего-либо и нажатии Enter программа вылетает с треском. А ошибок нет, только предупреждение одно: warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details
0
Twilight Parasite
 Аватар для Invader_Zim
154 / 150 / 7
Регистрация: 21.07.2011
Сообщений: 908
24.06.2012, 16:39
Dady, дебаггер в зубы и вперед на амбразуру)
1
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
24.06.2012, 16:42  [ТС]
Цитата Сообщение от Invader_Zim Посмотреть сообщение
Dady, дебаггер в зубы и вперед на амбразуру)
в смысле?
0
Twilight Parasite
 Аватар для Invader_Zim
154 / 150 / 7
Регистрация: 21.07.2011
Сообщений: 908
24.06.2012, 16:44
Dady, Text=fopen(s, "r"); это раз
два, считывайте с помощью fscanf(FILE *,"%s",char *a);
1
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
24.06.2012, 16:51  [ТС]
Цитата Сообщение от Invader_Zim Посмотреть сообщение
Dady, Text=fopen(s, "r"); это раз
два, считывайте с помощью fscanf(FILE *,"%s",char *a);
Вот так:


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
#include "stdafx.h"
#include <iostream> 
#include <fstream> 
using namespace std; 
int main() 
{   setlocale(LC_ALL,"Russian"); 
    char s[256];
    cin>>s;
    FILE *Text;
        if((Text=fopen(s, "r"))==NULL)
            cout<< "no";
        size_t const n=(sizeof(Text));
    char buffer[n]; 
    char str[10]; // вводим последовательность символов    
    cout << "Введите последовательность символов ( вводим на английском ) "; 
    fscanf(FILE *,"%s",char *a); 
    while(buffer[n]=fgetc(Text)!=EOF)
        { 
            if(strstr(buffer,str) != NULL)  // strstr возвращает указатель
            {
              cout << "Совпадение обнаружено " << str << endl; // совпадение обнаружено выходим из цикла                                
            } else
            { cout << "Совпадений нет"<< endl;}
        }
        
        system("Pause"); 
}
0
Twilight Parasite
 Аватар для Invader_Zim
154 / 150 / 7
Регистрация: 21.07.2011
Сообщений: 908
24.06.2012, 17:01
Dady,

C++
1
2
3
4
5
while(buffer[n]=fgetc(Text)!=EOF)
 
//заменить на 
 
while(!feof(Text))
1
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
24.06.2012, 17:11  [ТС]
Цитата Сообщение от Invader_Zim Посмотреть сообщение
два, считывайте с помощью fscanf(FILE *,"%s",char *a);
Заменил и стал поддчёркивать в строке

C++
1
fscanf(FILE *,"%s",char *a);
слова FILE и char *a. Что можно сделать?
0
Twilight Parasite
 Аватар для Invader_Zim
154 / 150 / 7
Регистрация: 21.07.2011
Сообщений: 908
24.06.2012, 17:19
Dady, вместо указателя на файл пиши свой, вместо указателя на массив, имя своего массива
1
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
24.06.2012, 17:29  [ТС]
Цитата Сообщение от Invader_Zim Посмотреть сообщение
Dady, вместо указателя на файл пиши свой, вместо указателя на массив, имя своего массива
C++
1
fscanf(Text *,"%s",char *s);
Опять поддчёркивает char и запятую. В чём может быть дело?

Добавлено через 5 минут
Цитата Сообщение от Invader_Zim Посмотреть сообщение
Dady, вместо указателя на файл пиши свой, вместо указателя на массив, имя своего массива
Написал, но также поддчёркивает char и запятую. В чём же дело?

C++
1
fscanf(Text *,"%s",char *s);
0
Twilight Parasite
 Аватар для Invader_Zim
154 / 150 / 7
Регистрация: 21.07.2011
Сообщений: 908
24.06.2012, 17:45
Dady,
C++
1
fscanf(Text *,"%s",s);
Спасибку тыц
1
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
24.06.2012, 17:48  [ТС]
Цитата Сообщение от Invader_Zim Посмотреть сообщение
fscanf(Text *,"%s",s);
Не скажите почему компилятор поддчёркивает запятую? Заранее спасибо.
0
Twilight Parasite
 Аватар для Invader_Zim
154 / 150 / 7
Регистрация: 21.07.2011
Сообщений: 908
24.06.2012, 17:49
Dady, Звездочку убери, и будет счастье)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.06.2012, 17:49
Помогаю со студенческими работами здесь

fopen не читает из URL - Warning: fopen('http://www....','r') - Bad file descriptor in .....gethtml.php on line 16
Как известно с помощью fopen можно прочитать данные не только из файла но и из URL. Проблема в том что обращаясь через прокси я получаю...

Работа с курсором в fopen
Задача такова: нужно записать инфу в через fopen в CSV файл. Загвоздка в том, что информация об одном обьекте сначала вычисляется и...

Работа с файлами fopen
Программа запускается нормально, выскакивает предупреждение об использовании fopen_s заместо fopen(Почему?) Но главная проблема возникает...

Работа с функцией fopen - ошибка в коде
Подскажите, почему при компиляции выдает ошибку? #include &lt;stdio.h&gt; #include &lt;string.h&gt; unsigned crc16(const char *buf,...

Что значит rt и wt в функции fopen?
Что значит rt и wt в функции fopen? /* Открытие входного файла */ printf(&quot;%s&quot;,sPI); gets(f_name); while...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru