Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 06.11.2017, 22:56   #1
19skip19
Пользователь
 
Регистрация: 18.10.2017
Адрес: Львов
Сообщений: 10
Репутация: 10
По умолчанию fstream вывод из txt файла

Здравствуйте! Прошу помочь мне. Как сделать так что бы открывался txt файл и читалось по очереди первая строка, вторая строка и т.д. и выводилось на экран
19skip19 вне форума   Ответить с цитированием
Старый 08.11.2017, 12:47   #2
yanich89
Пользователь
 
Регистрация: 20.09.2017
Сообщений: 12
Репутация: 10
По умолчанию

Вот исходный текст:

Код:

#include "stdafx.h"
#include <Windows.h>
#include <fstream>
#include<iostream>
#include <io.h>
#include <fcntl.h>

using namespace std;

wchar_t* CharStrToWCharStr(const char nStr[], UINT nCodePage = CP_ACP);
//-----------------------------------------------------------------------------------------------------
int main(int nArgC, char* nArgV[])
{
	_setmode(_fileno(stdout), _O_U16TEXT);
	if (nArgC < 2)
	{
		wprintf_s(_T("Использование: FStream.exe <имя файла>\n"));
		return 1;
	}
	fstream oFile(nArgV[1], ios::in);
	if (!oFile.is_open())
	{
		_TCHAR caStr[] = _T("Невозможно открыть файл");
		wchar_t* wcpStr = CharStrToWCharStr(nArgV[1]);
		if (wcpStr)
		{
			wprintf_s(_T("%s <%s>\n"), caStr, wcpStr);
			delete wcpStr;
		}
		else
			wprintf_s(_T("%s\n"), caStr);
		return 1;
	}

	char caBuf[999];
	do
	{
		oFile.getline(caBuf, sizeof(caBuf) - 1);
		if (oFile.gcount())
		{
			wchar_t* wcpStr = CharStrToWCharStr(caBuf);
			if (wcpStr)
			{
				_putws(wcpStr);
				delete wcpStr;
			}
		}
	} while (!oFile.eof());

	return 0;
}
//-----------------------------------------------------------------------------------------------------
// Преобразует однобайтовую строку nStr в многобайтовую
// nCodePage - кодовая страница. По умолчанию системная поумолчанию (для русского языка windows-1251)
// Если нужна кодировка OEM-866, необходимо указать CP_OEMCP
// Полный список кодовых кодировок смотреть в справке к функции MultiByteToWideChar
// Возвращает указатель на строку. Его необходимо после использования удалить оператором delete
// В случае ошибки возвращает NULL
wchar_t* CharStrToWCharStr(const char nStr[], UINT nCodePage)
{
	int iSizeBuf = MultiByteToWideChar(nCodePage, MB_PRECOMPOSED, nStr, -1, NULL, 0);
	if (iSizeBuf)
	{
		_TCHAR* pcBuf = new _TCHAR[iSizeBuf];
		MultiByteToWideChar(nCodePage, MB_PRECOMPOSED, nStr, -1, pcBuf, iSizeBuf);
		return pcBuf;
	}

	return NULL; // Ошибка
}
//-----------------------------------------------------------------------------------------------------

yanich89 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод текста из TXT файла Fallart Общие вопросы C/C++ 5 17.05.2011 19:04
Вывод данных из txt файла на экран (си++) Skrydlov Помощь студентам 0 26.12.2010 22:13
if и чтение+вывод из файла .txt webber9989 PHP 4 24.08.2010 22:13


15:31.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru