Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
24.06.2012, 16:03     Работа с текстом, функции fopen и fclose #1
Друзья, помогите! Не могу понять в чём тут дело. я убрал поток и начал использовать функции 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"); 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2012, 16:03     Работа с текстом, функции fopen и fclose
Посмотрите здесь:

C++ Работа с текстом
Как в функции открытия файла fopen() задать путь через ключи C++
C++ Как в функции открытия файла fopen() задать путь через ключи
C++ Работа с текстом C++
Ошибка доступа после fclose C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
24.06.2012, 16:04     Работа с текстом, функции fopen и fclose #2
Dady, Какая ошибка? Ошибку сюды!
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
24.06.2012, 16:08  [ТС]     Работа с текстом, функции fopen и fclose #3
Цитата Сообщение от 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
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
24.06.2012, 16:39     Работа с текстом, функции fopen и fclose #4
Dady, дебаггер в зубы и вперед на амбразуру)
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
24.06.2012, 16:42  [ТС]     Работа с текстом, функции fopen и fclose #5
Цитата Сообщение от Invader_Zim Посмотреть сообщение
Dady, дебаггер в зубы и вперед на амбразуру)
в смысле?
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
24.06.2012, 16:44     Работа с текстом, функции fopen и fclose #6
Dady, Text=fopen(s, "r"); это раз
два, считывайте с помощью fscanf(FILE *,"%s",char *a);
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
24.06.2012, 16:51  [ТС]     Работа с текстом, функции fopen и fclose #7
Цитата Сообщение от 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"); 
}
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
24.06.2012, 17:01     Работа с текстом, функции fopen и fclose #8
Dady,

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

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

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

C++
1
fscanf(Text *,"%s",char *s);
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
24.06.2012, 17:45     Работа с текстом, функции fopen и fclose #12
Dady,
C++
1
fscanf(Text *,"%s",s);
Спасибку тыц
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
24.06.2012, 17:48  [ТС]     Работа с текстом, функции fopen и fclose #13
Цитата Сообщение от Invader_Zim Посмотреть сообщение
fscanf(Text *,"%s",s);
Не скажите почему компилятор поддчёркивает запятую? Заранее спасибо.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2012, 17:49     Работа с текстом, функции fopen и fclose
Еще ссылки по теме:

C++ Работа с файлами fopen
C++ VisuaStudio2012 не принимает fopen() и тому подобные функции
C++ Функция fclose() и EOF

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

Или воспользуйтесь поиском по форуму:
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
24.06.2012, 17:49     Работа с текстом, функции fopen и fclose #14
Dady, Звездочку убери, и будет счастье)
Yandex
Объявления
24.06.2012, 17:49     Работа с текстом, функции fopen и fclose
Ответ Создать тему
Опции темы

Текущее время: 04:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru