Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2017, 15:57   #1
lisica198808
Пользователь
 
Регистрация: 06.11.2012
Сообщений: 64
По умолчанию Как правильно посчитать длину строки из файла с пробелами?

как подключать файл к stringовой строке,вывести ее на экран я знаю...
Код:
 ifstream inFile;
   inFile.open("text.txt");
   if(inFile)
   {
       string s;
       getline(inFile,s);
       cout<<s;
       inFile.close();
   }else
      cout<<"File not opened\n";
а как посчитать ее длину (длину всех символов с пробелом) запуталась..
пишу после того как считала из файла строку
Код:
int dlina;
dlina=s.length();
cout<<"Длина строки:";
cout<<dlina;
но у меня ничего не выводится.. почему?я какую-то не ту функцию использую?
lisica198808 вне форума Ответить с цитированием
Старый 19.03.2017, 17:04   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Попробуй:

Код:
#include<string>
#include<fstream>
#include <iostream>
using namespace std;

int main()
{
	ifstream inFile("text.txt");
	if (inFile)
	{
		string s, st;
		while (inFile.peek() != EOF)
		{
			inFile >> st;
			s = s + st + " ";
		}
		cout << s;
		inFile.close();
	}
	else
		cout << "File not opened\n";

	int t;
	cin >> t; // чтобы консоль не закрывалась
	return 0;
}
Только в конце дополнительный символ пробела выводит (наверно это не оптимальный вариант).

Пиши, что думаешь.
ura_111 вне форума Ответить с цитированием
Старый 19.03.2017, 17:28   #3
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

А при таком варианте нормально выводит (но выводит в массив "char"):

Код:
#include<fstream>
#include <iostream>
using namespace std;

int main()
{
	ifstream inFile("C:\\text.txt");
	if (inFile)
	{
		char s[256];
		inFile.getline(s, 255);
		cout << s;
		inFile.close();
	}
	else
		cout << "File not opened\n";

	int t;
	cin >> t; // чтобы консоль не закрывалась
	return 0;
}

Последний раз редактировалось ura_111; 19.03.2017 в 17:53.
ura_111 вне форума Ответить с цитированием
Старый 19.03.2017, 20:26   #4
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Всё зависит от кодировки.
Croessmah вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посчитать длину второго предложенияC# logikal Помощь студентам 0 21.04.2014 20:15
Как считать из файла строку с пробелами? С/С++ kappa937 Помощь студентам 1 15.12.2013 04:56
как посчитать длину пути? lisa007x Помощь студентам 0 30.09.2010 11:36
Как организовать ввод строки с пробелами? Adminx Общие вопросы C/C++ 11 20.11.2009 02:33
как прочитать из файла имя, фамилию разделенные пробелами и записать их в массив парами Rom@shka Общие вопросы C/C++ 2 13.12.2008 16:40