Прочитать две строки и записать их в два отдельных массива - C (СИ)
Формулировка задачи:
Всем привет, мне нужно из файла прочитать две строки и записать их в два отдельных массива. То есть логин и пароль пользователя соответственно. Так как это данные администратора, то они заносятся в файл вручную. Я пытался прочитать таким образом, где proverka1[50] - это переменная для хранения логина, прочитанного из файла, proverka2[50] - для пароля.
Проблема в данном случае совершенно понятна, первый вызов функции читает слово ADMIN из файла а потом ещё кучу каких-то пробелов, потом второй вызов читает вторую строку и опять же кучу пробелов. Из-за этого при сравнении массивов proverka1 и proverka2 с логином и паролем неправильное. Есть догадки что лишние пробелы берутся из-за sizeof. Видимо он вычисляет размер массива login, который равен 50. Но для функции fgets это ведь не проблема, потому как она читает до символа переноса строки, а получается что прочитывает 50 символов... Сколько не мучался, проблему не решил, получается только, если через пробел данные прочитать из одной строки и записать в один массив. Господа, надеюсь на вашу помощь!
file_admin = fopen("f:\\Visual C++ projects\\Списки!\\Списки!\\PASSWORD ADMIN.txt", "r"); if (file_admin == NULL) printf("Ошибка открытия файла!\n"); else { for (i = 0; i < 2; i++) { if (i == 0) { fgets(proverka1, sizeof(login), file_admin); } if (i == 1) { fgets(proverka2, sizeof(parol), file_admin); } } }
Решение задачи: «Прочитать две строки и записать их в два отдельных массива»
textual
Листинг программы
char login[50], password[50]; FILE* f = fopen("Text.txt", "r"); fscanf(f, "%49s\n%49s", login, password);
Объяснение кода листинга программы
- Объявляются две переменные типа char - login и password, каждая из которых может хранить строку длиной до 50 символов.
- Открывается файл
Text.txt
для чтения с помощью функции fopen. - Вводится две строки из файла с помощью функции fscanf.
%49s
- это спецификатор формата, который указывает на чтение строки, заканчивающейся символом новой строки (\n).login
иpassword
- это имена переменных, в которые будут сохраняться прочитанные строки.login
иpassword
должны быть объявлены как массивы, способные хранить строки длиной до 50 символов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д