У меня проблема с scanf и двумя строками.C: scanf и строки
char city1[11], city2[11];
for(int i = 0; i < (m + k); i++) {
scanf("%s %s", city1, city2);
}
Я должен прочитать (m + k) thimes две строки - имена citites. Проблема в том, что когда я пишу несколько строк, нажмите клавишу ввода ничего не происходит. Указатель находится на экране, но я ничего не могу сделать. Я попытался написать что-то с printf после scanf, но это не сработает. :/
Подробнее Код:
int n, m, k;
do {
scanf("%d %d %d", &n, &m, &k);
} while(n < 2 || n > 10001 || -1 < m || m > 100001 || -1 < k || k > 100001);
city* cities = (city*)malloc(n*sizeof(city));
path* paths = (path*)malloc((m + k)*sizeof(path));
int addCities = 0;
char city1[11], city2[11];
for(int i = 0; i < (m + k); i++) {
scanf("%s %s", city1, city2);
printf("ok");
if(addCities < n && !isListed(cities, n, city1)) { // if city1 is not into cities
// add it
strcpy(cities[addCities].name, city1);
cities[addCities].prev = NO_PARENT;
addCities++;
}
paths[i].i = getCityNumber(cities, n, city1); // number of city1
if(addCities < n && !isListed(cities, n, city2)) { // if city2 is not into cities
// add it
strcpy(cities[addCities].name, city2);
cities[addCities].prev = NO_PARENT;
addCities++;
}
paths[i].j = getCityNumber(cities, n, city1); // number of city2
if(i >= m)
scanf("%d", &paths[i].price);
}
Пожалуйста, покажите полный пример. –
Этот фрагмент кода является «C». Пожалуйста, отредактируйте ваш тег –
, пожалуйста, укажите полный код? какие и где определены m nad k? – zmo