2014-02-02 8 views
1

Я пытаюсь создать количество строк, на которые я могу ввести, в зависимости от ввода пользователя.Количество строк в зависимости от пользовательского ввода

Поэтому он запрашивает у меня количество строк, не более 100, и когда я набираю 12, я хочу создать 12 строк, и я хочу вводить их в каждую из них, но каждая строка может иметь минимум 1 и не более 100 символов английского алфавита.

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

PS, он показывает мне ошибка в VOID линии ....

#include <iostream> 

void riadkov (int arg[], int dlzka_r){ 
     char dlzka_r[100]; 
     riadkov(ulohy, dlzka_r); 

int main(){ 
using namespace std; 

int ulohy; 

    cout << "zadaj pocet uloh: "; 
    cin >> ulohy; 
    if (ulohy >= 1 && ulohy <= 100){ 


    cout << riadkov[ulohy] << endl; } 
    }else{ 
    cout << "minimalne 1 uloha, maximalne 100 uloh!" << endl; 

    } 
system("pause"); 
} 
+0

Вы не можете создавать функции внутри других функций. Переместите его за пределы основной функции –

+2

Просьба предоставить SSCCE (http://sscce.org/). Ваш код не прошел никакой компилятор. – harper

+0

спасибо, но теперь он говорит, что char dlzka_r [100]; теней параметр .... как я могу это ограничить ?? – frank17

ответ

1

Как Алекс говорит, что вы не можете создать функцию внутри другой, вы должны сделать riadkov функцию лямбда:

auto riadkov = [](int arg[], in dkzka_r) -> void { 
    // implementation 
} 

во-вторых, поскольку вы пытаетесь создать Dynamica LLY количество строк, что вам нужно, это:

char **data; // but you 'll have to malloc/new yourself 

Если не требуется использовать символ, вы можете выбрать контейнер строк

EDIT:

откомпилировать и запустить этот пример (как для char ** ... rtfm)

#include <iostream> 
#include <vector> 
#include <string> 

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    std::vector<std::string> data; // contains a sequence of strings 
    std::size_t num(0); // number of rows 
    do 
    { 
     std::cout << "Enter number (1 to 100) of rows : " ; 
     std::cin >> num; 
    } while (num < 1 || num > 100); 

    for (std::size_t i(0); i < num; ++i) 
    { 
     data.push_back(std::string()); // add an empty string 
     std::cout << "\nEnter data for row " << i << " : "; 
     std::cin >> data.back(); // fill the empty string with user input 
     if (data.back().length() > 100) { 
      std::cout << "Only 1 to 100 characters are allowed"; 
      data.pop_back(); // remove the last string 
      --i; // the ith row will be prosessed again 
     } 
    } 

    // now to print what you inserted in the vector 
    std::cout << "Printing contents of the vector\n"; 
    for (std::size_t i(0), ie(data.size()); i < ie; ++i) 
    { 
     std::cout << i << ". :" << data[i] << std::endl; 
    } 

    return 0; 
} 
+0

Я не понимаю данные второго кода> char **; .. – frank17

+0

, а также, если пользователь пишет 101 (количество строк для создания), он должен сказать ему oops, max - 100! ... так что мне нужна функция в другой функции. – frank17

Смежные вопросы