01/10/2018, 13:41
Cách nhập dữ liệu từ bàn phím, cách nhau bởi dấu phẩy
mọi người giúp em với, chỉ em cách mà nhập tữ liệu vào cấu trúc struct hồm: int, char, double
trên 1 dòng, cách nhau bở đấu phẩy:
vd: int maSoSV;
char hoVaTen[50];
double gpa;
nhập: 1111, hovaten a, 4.0
Bài liên quan
Thử như sau:
Làm như cách @noname00 cũng được, nhưng nếu em thix style “1 line for all” thì search với key word “scanf with dilimiter”
[code]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct
{
int maSoSV;
char hoVaTen[50];
double gpa;
}student;
int main()
{
int n,i;
scanf("%d",&n);
student std = (student)malloc(n*sizeof(student));
}[/code]
giuops em voiws, sai ở chỗ nòa vậy bác.
Mẫu của bạn bị sai rồi
bác sữa giúp em được k, em làm theo cả trên stackover mà nó vẫn sai
Mình có ví dụ ở trên rồi mà
Ngoài ra phần nhập bạn chưa truyền con trỏ vào, nên nhập sẽ bị sai đấy.
bác ơi, nó lỗi này
prog.c: In function 'main': prog.c:25:9: error: format '%[^,' expects argument of type 'char *', but argument 3 has type 'char **' [-Werror=format=] scanf("%d,%[^,],%lf", &std[i].maSoSV, &std[i].hoVaTen, &std[i].gpa); ^ cc1: all warnings being treated as errors
giúp em với.
Ho và tên ko cần truyền địa chỉ đâu
Ở trên mình code bừa khúc đó đấy.
Còn ẩu như mình thì tắt các flags
-Werror -Wfatal-errors
đi là tung tăng bay lượn.em bieets cai đây mà đôi khi vẫn mắc phải. giờ em muốn bỏ thêm 1 ký tự nữa có được k bác
Được chứ, ta sẽ dùng
%*[char]
để ignore nhữngchar
đihttp://www.cplusplus.com/reference/cstdio/scanf/
"%d%*[,.]%[^,.]%*[,.]%lf"