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

STL - C++

Восстановить пароль Регистрация
 
-comrade-
355 / 356 / 42
Регистрация: 11.06.2010
Сообщений: 703
05.12.2010, 12:06     STL #1
Всем привет
Задача следующая - Нужно считать из файла строки, запихнуть их в стек и вывести на экран, чтобы перед ними был номер (использовать возможности стандартной библиотеки шаблонов (STL))

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <fstream>
#include <iostream>
#include <stack>
#include <vector>
 
using namespace std;
 
int main()
{
    ifstream file("d:\\1.txt");
    stack <char*,vector<char*>  > S;
    char* str=new char[250]; int i=0;
    while(!file.eof()) { file.getline(str,250,'\0'); S.push(str); }
    file.close();
    while(!S.empty())  { str=S.top(); cout<<"  "<<++i<<": "<<str<<endl; S.pop(); }
    cout<<endl; 
    system("pause");
    return 1;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2010, 12:06     STL
Посмотрите здесь:

STL C++
C++ STL
C++ STL
C++ STL в С++
C++ STL.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
05.12.2010, 12:28     STL #2
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
#include <fstream>
#include <iostream>
#include <stack>
#include <string> 
#include <algorithm>
 
using namespace std;
 
void _print( const string& str ){
  static int i =0;
  cout << ++i << ": " << str << endl;
}
 
int main()
{
    ifstream file("/home/alexxx/1.cpp");
    stack <string> S;
    string str;
    if( !file ){
      cout << "cant open file\n";
      return -1;
    }
    while(!file.eof()) {
      getline(file,str); 
      S.push(str); 
    }
    for( ;S.size();S.pop() ){
      _print( S.top() );
    }
    system("pause");
}
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
05.12.2010, 12:31     STL #3
alex_x_x, это никсы или виндоуз?
/home/alexxx/1.cpp
и одновременно
system("pause");
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
05.12.2010, 12:43     STL #4
lemegeton, ну я пример автора переделывал

Добавлено через 1 минуту
да ну и там с номерами строк вопрос
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
05.12.2010, 13:00     STL #5
А вот, например, можно без стека.
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
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <iomanip>
#include <algorithm>
 
using namespace std;
 
int main()
{
    ifstream file("a.txt");
    vector<string> V;
    string S;
    if (!file)
    {
        cout << "Cannot open file.\n";
        return 1;
    }
 
    while (!file.eof())
    {
        getline(file, S);
        V.push_back(S);
    }
 
    for (int i=0; i<V.size(); i++)
        cout << "Line N " << setw(3) << i << ": " << V[i];
 
    system("pause");
}
Yandex
Объявления
05.12.2010, 13:00     STL
Ответ Создать тему
Опции темы

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