Mám c++ úlohy, ktoré chce ma pracovať s vstupu, ktorý sa skladá z n očíslované vety a tieto vety môžu byť oddelený medzerou alebo nový riadok. Takže úlohou označuje, že vstup bude koniec výskytu znaku @. V c++, ako môžem si vziať jeden vstupný s n očíslované vety, kým @ ?
0
Otázka nie je specif anough dať odpoveď.
Ale čítanie, kým sa nezobrazí znak appearscan byť vykonané jednoduché slučky. Dokonca aj vtedy, ak zadávate viac údajov po @, bude to ignorovať.
Sme mať kompletné vstup v jeden reťazec a rozdeliť pozdĺž '.'
Možno takto môže dať si aspoň predstavu . . .
#include <string>
#include <iostream>
#include <vector>
#include <regex>
const std::regex re{R"(\.)"};
int main() {
// Here we store the complete input up to a @
std::string data{};
char c{};
// Read until @ found
while (std::cin.get(c) and c != '@')
data += c;
// Split input into sentences.
std::vector sentence(std::sregex_token_iterator(data.begin(), data.end(), re, -1), {});
// Show all sentences
for (const std::string& s : sentence) std::cout << s << '\n';
}