Я пишу простую программу, которая принимает данные о людях в этом формате: имя, возраст, пол, данныеC - printf() работает неправильно?
и он будет отображать их как этот [название:, возраст:, пол:, информация: ]
Вот мой код до сих пор:
#include <stdio.h>
int main() {
char name[10];
int age;
char gender[2];
char info[50];
while(scanf("%9[^,],%i,%c,%49[^\n]", name, &age, gender, info) == 4) {
printf("[name: %s, age: %i, gender: %c, info: %s]\n", name, age, gender, info);
}
return 0;
}
так что я решил написать свой вывод в другой текстовый файл с помощью>. И он правильно отображает n, дисплей] отображается на новой строке и [имя: сам по себе.
Это мой вход:
eliza,7,F,likes animals
bob,9,M,fast at running
sue,6,F,likes painting
И выход:
[name: eliza, age: 7, gender: J, info: likes animals
]
[name:
bob, age: 9, gender: J, info: fast at running
]
[name:
sue, age: 6, gender: J, info: likes painting
]
Может кто-то помочь? Я не могу понять, почему он печатает такие данные, я попытался использовать strstr(), чтобы проверить, содержит ли какая-либо из моих переменных новый символ строки.
Я думаю, это для Windows? – Dave
Да, это что-то влияет на что-нибудь? – tenkii
Да; line endings в Windows являются '\ r \ n' не просто' \ n' – Dave