Member 14594285 Ответов: 2

Задача с вектором строки с C++


Я написал программу, которая читает файл, сохраняет в векторе строки слова:
2
int main()
{
	string parole[1000];
	string parola;
   int conteggio = 0;
   int n=0;
ifstream infile("C:\\Users\\Mio\\Desktop\\ciao.txt");
   if (!infile.good()){
      cout << "errore apertura file" << endl;
      return 0;
   }
   while ( infile >> parola )
    {
      parole[n]=parola;
      cout << parole[n]<<endl;
      n++;
   }  
      
  return 0;
}


Я написал::
строка условно-досрочного освобождения[1000];

но я не знаю длины условно-досрочного освобождения, как я могу писать?

Что я уже пробовал:

может быть, я должен использовать указатель? Я не знаю, как я могу решить

2 Ответов

Рейтинг:
2

KarstenK

Вы не вектор, а фиксированный массив. Читать это векторный учебник.

Твое условно - досрочное освобождение-это веревка. Этот класс имеет длина() функция.

совет: используйте поисковую машину и ознакомьтесь с документацией ;-)


Рейтинг:
1

CPallini

Попробуй

#include <iostream>
#include <vector>
using namespace std;

int main()
{
  vector <string> vw;

  for(;;)
  {
    string word;
    cin >> word;
    if ( ! cin ) break;
    vw.push_back(word);
  }

  for (const auto & w : vw)
    cout << w << endl;

  cout << "no. oof words: " << vw.size() << endl;
}
Чтобы получить входные данные из вашего текстового файла, перенаправьте стандарт, например
showwords.exe < C:\Users\Mio\Desktop\ciao.txt

(самонадеянный showwords.exe это имя исполняемого файла).


Member 14594285

что такое "w"? когда вы пишете:
const auto & w : vw

CPallini

w - это слово (a string, потому что vw-это vector<string>). Видеть
https://en.cppreference.com/w/cpp/language/range-for