Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Открытие текстового файла

Ответить
Настройки темы
C/C++ - Открытие текстового файла

Новый участник


Сообщения: 21
Благодарности: 1

Профиль | Отправить PM | Цитировать


Изменения
Автор: .::.DIMA.::.
Дата: 16-03-2013
Решено

Отправлено: 02:43, 03-05-2009

 

Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


.::.DIMA.::. возможно всё дело в распространенности MFC.
Цитата hasherfrog:
... кое-где MFC называют вымирающим динозавром ... >>

Без привязки к MFC - fscanf можно использовать например так
Код: Выделить весь код
#include <stdio.h>

int main(int argc, char* argv[])
{
	char bykva[]={'A','\0'};
	int chislo1,chislo2;

	FILE *My;
/*	My=fopen("MyFile.txt","w");

	chislo1=1;
	chislo2=2;
	fprintf(My,"%s %i %i",bykva,chislo1,chislo2);
	fclose(My);*/
	
	My=fopen("MyFile.txt","r");
	fscanf(My,"%s %i %i",bykva,&chislo1,&chislo2);
	fclose(My);
	
	printf("%s %i %i",bykva,chislo1,chislo2);
	return 0;
}
В файле через пробел должна следовать буква и два числа, для демонстрации (автоматического создания файла) можно раскомментировать часть кода, отвечающую за запись в файл.

Отправлено: 00:29, 04-05-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


.::.DIMA.::. можно посмотреть в сторону Win Api
Вместо fopen, fscanf, fclose можно использовать соответственно _lopen, _lread, _lclose.
Но это устаревшие функции, вместо них лучше использовать - CreateFile, ReadFile, CloseHandle.
Win32 File Sample
Кстати по ссылке в выводе как раз рекомендуют забыть про эти функции и работать с MFC вариантом - классом CFile или CStdioFile
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:52, 05-05-2009 | #3

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать



Цитата Admiral:
.::.DIMA.::. возможно всё дело в распространенности MFC.
Цитата hasherfrog:
... кое-где MFC называют вымирающим динозавром ... >> »
Кое-где я стандартную сишную библиотеку (с функциями fprintf, fscanf) считаю динозавром

Для работы с текстовыми файлами полно библиотек, и ничто не мешает пользоваться ими одновременно. И одновременно с MFC. Пример:
Код: Выделить весь код
// не забудь #include <fstream>
// помни, что если не используешь using namespace std, то надо явно указывать пространство имён
void Button1_OnClick()
{
  char char1;
  int int1, int2;

  std::ifstream in("input.txt");
  if (!(in >> char1 >> int1 >> int2).good()) MyError("Ошибка чтения данных input.txt");

 ...
}
Если ругается что нет файла fstream - скопируй откуда-нибудь стандартную библиотеку c++
Если ругается на что-то внутри библиотеки - значит сделай #define C_PLUS_PLUS или MICROSOFT_ или что-то там ещё, посмотри внутри библиотечных файлов. Если не поможет - значит компилятор урезанный.
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:41, 05-05-2009 | #4

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
char s[50];

while (! feof (f))
{
    s[0] = 0; // не забываем инициализировать
    AfxMessageBox (CString (fgets (s, sizeof(s), f)));
};
Syntax

#include <stdio.h>
char *fgets(char *s, int n, FILE *stream);
wchar_t *fgetws(wchar_t *s, int n, FILE *stream); // Unicode version

Description

Gets a string from a stream.

fgets reads characters from stream into the string s. The function stops reading when it reads either n - 1 characters or a newline character whichever comes first. fgets retains the newline character at the end of s. A null byte is appended to s to mark the end of the string.

Return Value

On success fgets returns the string pointed to by s; it returns NULL on end-of-file or error.

Отправлено: 12:17, 05-05-2009 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Открытие текстового файла

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Получение и обработка информации из текстового файла ya158 AutoIt 3 11-09-2009 01:24
[решено] Чтение текстового файла с неизвестным именем ZeroCrash AutoIt 4 01-07-2009 19:03
Скрипт по обработке текстового файла Space-06 AutoIt 4 26-06-2009 10:36
CMD/BAT - [решено] Как скопировать имя файла из текстового файла в код батника и т.д. Nun-Nun Скриптовые языки администрирования Windows 6 13-05-2009 13:28
Shell. Чтение текстового файла по строкам. Delphin911 Общий по Linux 11 07-04-2005 17:58




 
Переход