30/09/2018, 22:04

Hàm scanf trong c++

Cho em hỏi tại sao hàm scanf dùng như thế này thì đọc dữ liệu không được ạ
scanf("%d %d %d", &u, &v, &c[u][v]);
Mình phải chuyển thành
scanf("%d %d", &u, &v); scanf("%d", &c[u][v]);
thì mới đọc đúng được.
Em thấy trong pascal đọc dữ liệu như vậy được mà.
readln(f, u, v, c[u, v]);

Nguyễn Trọng Phương viết 00:14 ngày 01/10/2018

Thứ 1: Hàm scanf thì k dùng cho C++ nhé bạn, scanf chỉ dùng cho C thôi. Bác có thể dùng scanf để đọc nhưng như vậy thì không đúng chuẩn của C++.
Thứ 2: Cách đọc của pascal với C++ khác nhau nhé bác. Mỗi ngôn ngữ có cách đọc ghi dữ liệu khác nhau bác nên tuân thủ đúng luật của nó

Gió viết 00:05 ngày 01/10/2018

Lỗi ở đây là nếu dùng scanf c[u][v] chung với u,v thì lúc đó truyền địa chỉ &c[u][v] trong khi u,v chưa dc xác định sẽ dẫn tới lỗi. Còn nếu đọc u,v rồi mới đọc c[u][v] thì lúc đó đã nhận dc u,v rồi.

Văn Thăng viết 00:10 ngày 01/10/2018

Cho mình hỏi là có mjh đã tạo 1 cái ma trận kề trên file txt rồi
Giờ mình muốn dùng c++ đọc file này thì mjh phải viết sao ạ.moi bắt đầu làm mà trên mạng nhiều cái quá, dùng c, c++ lẫn lộn mjh ko rõ lắm .mong các b chỉ dẫn cho mình

Quang Huy Trần viết 00:10 ngày 01/10/2018
int n, m;
int A[i][j];

int main() {
  freopen("tenfile.txt", "r", stdin);
  scanf("%d %d", &n, &m);

  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) scanf("%d", &A[i][j]);
  return 0;
}
Bài liên quan
0