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

Программа выводит только первую строку текста

31.05.2012, 12:19. Показов 6181. Ответов 65
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// yourcat.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int main(void)
{
    int fleas;
    cout<<"how many fleas does yourcat have\n";
    cin>>fleas;
    cout<<"well,that's"<<fleas<<"fleas doo many!\n";
    cin.get();
    return 0;
}
Вот код программы должно выдасть
how many fleas does yourcat have
112
well,that's 112 fleas doo many!
А выдает только первую строку
how many fleas does yourcat have
IDE
Visual Studio 2008 express.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.05.2012, 12:19
Ответы с готовыми решениями:

Программа считывает только первую строку файла,как сделать чтобы она считывала все строки
#include &lt;fstream&gt; #include &lt;iostream&gt; using namespace std; int main(int argc, char* argv) { setlocale(LC_ALL, &quot;rus&quot;); ...

Программа считывает строку текста, выводит число слов и количество вхождений каждой буквы
Напишите программу, считывающую строку текста и выводящую число слов в этой строке, а также количество вхождений каждой буквы. Под словом...

Списки. Не выводит первую вводимую строку
Здравствуйте, проблема с списками, после ввода элементов в список, не выводит первый добавленный. вот код: #include &quot;stdafx.h&quot; ...

65
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
31.05.2012, 15:02
Лучший ответ Сообщение было отмечено как решение

Решение

Студворк — интернет-сервис помощи студентам
Toshkarik, вектор подключи, файл мы тоже не считаем без fstream. Вектор - отдельный класс, манипуляторы тоже, понятное дело без объявления класса никуда, другое дело файлы с наборами функций. Мы можем использовать strcpy сразу а вот std::string только подключив string. Ещё раз обращаю внимание на момент - файлы с дефайном _STD_USING подключаются сами. Файлы же с _STD_BEGIN обязательны с подключению в хедерах!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// vector standard header
 
#if     _MSC_VER > 1000
#pragma once
#endif
 
#ifndef _VECTOR_
#define _VECTOR_
#include <climits>
#include <memory>
#include <stdexcept>
#include <xutility>
 
#ifdef  _MSC_VER
#pragma pack(push,8)
#endif  /* _MSC_VER */
_STD_BEGIN
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// string standard header
 
#if     _MSC_VER > 1000
#pragma once
#endif
 
#ifndef _STRING_
#define _STRING_
#include <istream>
 
#ifdef  _MSC_VER
#pragma pack(push,8)
#endif  /* _MSC_VER */
_STD_BEGIN
Чтобы было понятно strcpy из string.h нам доступно сразу так как в cstring идёт USING, а вот класс std::string его надо подключать именно string в котором идёт BEGIN. Кто не верит берёт и проверяет вручную дефайны!

Добавлено через 4 минуты
Чуть не забыл об STDLIB
C++
1
2
3
4
5
6
7
8
9
10
11
// cstdlib standard header
 
#if     _MSC_VER > 1000
#pragma once
#endif
 
#ifndef _CSTDLIB_
#define _CSTDLIB_
#ifdef _STD_USING
 #undef _STD_USING
 #include <stdlib.h>
#define _STD_USING
C++
1
2
3
4
#else
 #include <stdlib.h>
#endif /* _STD_USING */
#endif /* _CSTDLIB */
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
31.05.2012, 15:18
Теперь уже подключить что то нужно, пару страниц назад Вы совершенно другое говорили. И данная реализация MS компилятора никакого отношения к стандарту не имеет, о чем Вы так же говорили пару страниц назад.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
31.05.2012, 15:31
Toshkarik, я не ведущий системный разработчик у мелкософта. Ясно и чётко написал что функции stdlib идут сразу потому как в нём
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
_STD_USING
об этом и говорит также возможность использовать system не подключая stdlib остальное нужно смотреть - где нет _STD_BEGIN то подключиться без нашего участия, где есть и хотим использовать в программе, надо делать инклуд. И пару страниц назад я писал лишь одно для system в VS подключать stdlib нет необходимости!Всё остальное уже было сказано выше.

Добавлено через 6 минут

Не по теме:

Разговор с ТС вконтакте - подтвердил слова diagon : в программе не соуществлялся ввод числа:)

0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
31.05.2012, 15:32
А теперь, пожалуйста, посмотрите мое сообщение о непереносимости данного кода и Ваш ответ на него.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
31.05.2012, 15:56
Toshkarik, ну и посмотри мой ответ на него. Да любую функцию СТД простарнства, если мы говорим о std::string vector то мы имеем методы данного конктретного класса(функции присущие именно данному классу), их да надо объявлять в коде посредством инклуда. Возьмём скажем strcpy (а чем блин не любая функция СТД пространства) то она доступна сразу, даже сам по себе string str; тоже можно записать без #include <string>, а вот методы std::string надо подключать. Ну и что я написал не так?Повторюсь
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
об этом и говорит также возможность использовать system не подключая stdlib остальное нужно смотреть - где нет _STD_BEGIN а есть _STD_USING то подключиться без нашего участия, где есть и хотим использовать в программе, надо делать инклуд. И пару страниц назад я писал лишь одно для system в VS подключать stdlib нет необходимости!
Добавлено через 14 минут
Toshkarik, ещё раз вернусь к нашему спору:
Итак strcpy объявлена где,ммм?Правильно в string.h исходя из твоей логики чтобы эта функция была доступна и как ты говоришь код свободно переносимым был, то после iostream мы должны написать cstring ну так ведь?
Ладно VS по твоему вне стандарта, тогда значит кодпад который реалзует твой GCC компилятор врёт http://codepad.org/a7gvFvGj
Хммм, а может всё таки дело в дефайнах о которых я говорил выше
Посмотри на досуге cstring
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// cstring standard header
 
#if     _MSC_VER > 1000
#pragma once
#endif
 
#ifndef _CSTRING_
#define _CSTRING_
#ifdef _STD_USING
 #undef _STD_USING
 #include <string.h>
 #define _STD_USING
#else
 #include <string.h>
#endif /* [COLOR="Red"][B]_STD_USING[/B][/COLOR] */
#endif /* _CSTRING_ */
Выделенное красным хорошо видно?Ну вот также и с stdlib!
Ну давай опровергни свои же слова
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
31.05.2012, 15:57
Вы совершенно другую мысль излагали в том посте, нежели сейчас, после нескольких страниц обсуждения.
Если честно уже поднадоело, особенно после вновь увиденной фразы о Code::Block`s. Пускай каждый останется при своем мнении.
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
31.05.2012, 15:59
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
.....
A C++ library header includes any other C++ library headers it needs to define needed types. (Always include explicitly any C++ library headers needed in a translation unit, however, lest you guess wrong about its actual dependencies.)
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
31.05.2012, 16:00
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Ну давай опровергни свои же слова
Какие именно? Я свое мнение написал чуть выше. По поводу GCC я обязательно сегодня же покапаюсь и узнаю.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
31.05.2012, 16:03
Toshkarik, просто ты увидел что сел в лужу и даёшь по тормозам. Я как раз сейчас самую суть выссказал - по твоей логике для strcpy надо включать cstring тогда почему без него всё работает и в студии и нестудии?
rangerx, напиши перевод, интересно как интерпритируешь текст
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
31.05.2012, 16:07
Да в какую лужу? Где и в чем я не прав? Укажите цитатами и ссылками на сообщения? А вот по Вашей логике, как раз в том первом сообщении, ВСЕ функции и объекты из std автоматически подключаются при using namespace std;. И никак по другому невозможно интерпретировать данное сообщение, я же возразил, представив пример с вектором и манипуляторами. Вы же начали сами уже высасывать из пальца, и перефразировать свои утверждения.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
31.05.2012, 16:11
Цитата Сообщение от Toshkarik Посмотреть сообщение
Какие именно?
- твои слова для system нужен cstdlib аналогично для strcpy нужен cstring ну я как бы показал что с глобальным std функции из данных библиотек доступны без явного указания хедеров(они будут подключены через дефайн _STD_USING а не через include)

Добавлено через 4 минуты
Цитата Сообщение от Toshkarik Посмотреть сообщение
я же возразил, представив пример с вектором и манипуляторами.
- тебе также ясно показал что идут хедеры с _STD_USING и _STD_BEGIN (последние требуют явного подключения).Хватит прикидываться шлангом пиши конкретно сам где я отступил от своих слов. Ты от своих если не оступил, то думаю пример strcpy для человека отсранённо читающего данную тему будет говорить о том чьи же слова оказались истинными
Можешь не отвечать, т.к. кроме мышиной возни я врядли что то увижу...
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
31.05.2012, 16:11
Вы понимаете что они не обязаны так работать? Что это всего лишь совпадение и что это не функционал языка?
0
31.05.2012, 16:13

Не по теме:

Цитата Сообщение от Toshkarik Посмотреть сообщение
Вы понимаете что они не обязаны так работать? Что это всего лишь совпадение и что это не функционал языка?
- ну конечно конечно...
То что код без явного указания хедера идёт на GCC это так нчего не значит, тоже отклонение от стандарта:bravo:

0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
31.05.2012, 16:15
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
ебе также ясно показал что идут хедеры с _STD_USING и _STD_BEGIN
Где? В этом сообщении я не вижу ничего подобного:

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- Ты о чём вообще? Код будет переносим для того что хоть немного следует стандарту http://codepad.org/0PE91DLt если в кодблоксе разработчики не довели СТД это не значит что СТДЛИБ не должно в данном пространстве быть (тебя не смущает using namespace STD и доп подключение STDlib - это глупость. Всё что идёт с приставкой СТД должно быть подавно включено в пространство)

Добавлено через 1 минуту
Sezz, сейчас выложу проект попробуешь его откомпилировать, если не выйдет значит у тебя кривая студия - других вариантов не вижу
А вижу фразу:
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Всё что идёт с приставкой СТД должно быть подавно включено в пространство
Где и что там о Вашем _STD_USING и _STD_BEGIN? Опять же, они существуют только в MS заголовке.

Добавлено через 1 минуту
-=ЮрА=-, Да ради бога, думайте что хотите, я от своих слов не отказываюсь, и Вы меня не переубедили, я бы даже сказал наоборот.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
31.05.2012, 16:24
Цитата Сообщение от Toshkarik Посмотреть сообщение
А вижу фразу:
Сообщение от -=ЮрА=-
Всё что идёт с приставкой СТД должно быть подавно включено в пространство
Где и что там о Вашем _STD_USING и _STD_BEGIN? Опять же, они существуют только в MS заголовке.
stdef
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// cstddef standard header
 
#if     _MSC_VER > 1000
#pragma once
#endif
 
#ifndef _CSTDDEF_
#define _CSTDDEF_
#ifdef _STD_USING
 #undef _STD_USING
 #include <stddef.h>
 #define _STD_USING
#else
 #include <stddef.h>
#endif /* [COLOR="Red"]_STD_USING[/COLOR] */
#endif /* _CSTDDEF_ */
STDARG
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// cstdarg standard header
 
#if     _MSC_VER > 1000
#pragma once
#endif
 
#ifndef _CSTDARG_
#define _CSTDARG_
#ifdef _STD_USING
 #undef _STD_USING
 #include <stdarg.h>
 #define _STD_USING
#else
 #include <stdarg.h>
#endif /* [COLOR="red"]_STD_USING[/COLOR] */
#endif /* _CSTDARG_ */
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// cstdlib standard header
 
#if     _MSC_VER > 1000
#pragma once
#endif
 
#ifndef _CSTDLIB_
#define _CSTDLIB_
#ifdef _STD_USING
 #undef _STD_USING
 #include <stdlib.h>
 #define _STD_USING
#else
 #include <stdlib.h>
#endif /* [COLOR="red"]_STD_USING[/COLOR] */
#endif /* _CSTDLIB */
Оу май гад
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// cstdio standard header
 
#if     _MSC_VER > 1000
#pragma once
#endif
 
#ifndef _CSTDIO_
#define _CSTDIO_
#ifdef _STD_USING
 #undef _STD_USING
 #include <stdio.h>
 #define _STD_USING
#else
 #include <stdio.h>
#endif /* [COLOR="red"]_STD_USING[/COLOR] */
#endif /* _CSTDIO_ */
Ещё фразы будут?

Добавлено через 1 минуту

Не по теме:

Toshkarik, заметь string vector не имеют приставок STD
Павлины говоришь....:D



Добавлено через 1 минуту
А теперь ответь за свои слова - пиши о system и strcpy почему они работают, ммм?Жду
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
31.05.2012, 16:28
Вы видать совсем ничего не поняли, в Вашем сообщении фраза
Всё что идёт с приставкой СТД должно быть подавно включено в пространство
особенно словосочетание
с приставкой СТД
как std::что-то. А не как какой то там _STD_USING и так далее, который опять повторюсь, существует только в MS-компиляторе.

Добавлено через 2 минуты
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
пиши о system и strcpy почему они работают, ммм
Да только потому, что заголовки с этими функциями используются в iostream или во вложенных в него.
0
31.05.2012, 16:32

Не по теме:


Цитата Сообщение от Toshkarik Посмотреть сообщение
уществует только в MS-компиляторе.
- Тогда какого чёрта по твоему strcpy работает без string (если есть iostrem и using namespace std)?!!!Просто так наверное...
А ладно, мне уже не интересно продолжать дискуссию и так топик загадили

0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
31.05.2012, 16:42
По Вашему рассуждению, должен работать такой код:
C++
1
2
3
4
5
6
7
8
9
#include <cstring>
 
using namespace std;
 
int main() {
    system( "pause" );
 
    return 0;
}
Но это не так.

Добавлено через 3 минуты
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Тогда какого чёрта по твоему strcpy работает без string (если есть iostrem и using namespace std)?
Да потому что где то в iostream включен заголовок string.h или cstring! Вы попробуйте использовать ее подключив вместо iostream cstdlib например:
C++
1
2
3
4
5
6
7
8
9
10
#include <cstdlib>
 
using namespace std;
 
int main() {
    char str1[] = "2333", str2[] = "2343";
    strcpy( str1, str2 );
 
    return 0;
}
Этот код так же не рабочий.

Добавлено через 4 минуты
Нашел в иерархии вложений iostream вложение cstring в заголовке xlocale.
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
31.05.2012, 16:55
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
rangerx, напиши перевод, интересно как интерпритируешь текст
"Заголовочный файл стандартной библиотеки C++ может включать в себя любые другие заголовки стандартной библиотеки требующиеся для определения необходимых типов. (Тем не менее, всегда явно подключайте любой стандартный заголовок стандартной библиотеки C++, который необходим в данной единице трансляции, чтобы не прогадать с их актуальными зависимостями.)"
А к чему все эти макросы VS, которые ты привёл я честно говоря так и не понял...
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
31.05.2012, 17:56

Не по теме:

Цитата Сообщение от Toshkarik Посмотреть сообщение
Да потому что где то в iostream включен заголовок string.h или cstring!
- его там нет



Добавлено через 1 минуту
Цитата Сообщение от rangerx Посмотреть сообщение
"Заголовочный файл стандартной библиотеки C++ может включать в себя любые другие заголовки стандартной библиотеки требующиеся для определения необходимых типов. (Тем не менее, всегда явно подключайте любой стандартный заголовок стандартной библиотеки C++, который необходим в данной единице трансляции, чтобы не прогадать с их актуальными зависимостями.)"
- ещё раз в истриме нет этих хедеров они подключаются компиляторм по отличному от инклудов механизму

Цитата Сообщение от Toshkarik Посмотреть сообщение
По Вашему рассуждению, должен работать такой код:

C++
1
2
3
4
5
6
#include <cstring>
using namespace std;
int main() {
* * system( "pause" );
return 0;
}
Но это не так.
- как это не так если он работает?!!!!

Добавлено через 35 секунд
Я писал о студии. И тема вообще студии посвящена, какого чёрта вы тут подняли тему жсс мне не понятно, лишь бы похоливорить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.05.2012, 17:56
Помогаю со студенческими работами здесь

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

Ifstream считывает только первую строку
я написал короткую программу, с водом имена в файл и выводом. проблема заключается в том что ifstream выводит только первую строку, а...

Функция fopen() для большого текстового файла читает только первую строку
Есть текстовой файл 4.5 мб, нужно его открыть для чтения из него строк. FILE *f = fopen(&quot;C:\\members.txt&quot;,...

Программа на С, которая вводит число типа int с клавиатуры, преобразует ее в строку (str), выводит на дисплей число и строку.
Задача направленная на усвоение следующих понятий: прототип функции; заголовок функции; тело функции; параметры, принимаемые функцией...

Программа выводит только одно значение
Здравствуйте. Есть код #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;time.h&gt; using namespace std; #define nil NULL; ...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru