Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: sửa lỗi bài tập

  1. #1
    Ngày gia nhập
    12 2017
    Bài viết
    5

    Mặc định sửa lỗi bài tập

    xin chào mọi người, mình có một câu hỏi muốn được mọi người giúp đỡ,
    mình viết chương trình sử dụng gets_s, đã đặt lệnh fflush(stdin) sao vẫn bị trôi lệnh

    #include <stdio.h>
    #include "stdafx.h"
    #include <conio.h>
    #define N 100


    typedef struct
    {
    int Nomer;
    char Tensp[30];
    int Kod;
    int Soluong;
    }Sanpham;
    void Nhap(Sanpham sp[], int &n)
    {
    printf("Nhap vao so phan tu mang: ");
    scanf_s("%i", &n);
    fflush(stdin);
    for (int i = 0; i < n; i++)
    {
    printf("Nomer: ");
    scanf_s("%i", &sp[i].Nomer);
    fflush(stdin);
    printf("Nhap vao ten san pham: ");
    fflush(stdin);
    gets_s(sp[i].Tensp);
    printf("Kod: ");
    scanf_s("%i", &sp[i].Kod);
    fflush(stdin);
    printf("So luong: ");
    scanf_s("%i", &sp[i].Soluong);

    }
    }
    void Xuat(Sanpham sp[], int n)
    {
    for (int i = 0; i < n; i++)
    printf("\n%-10i %-30s %-10i %-10i\n", sp[i].Nomer, sp[i].Tensp, sp[i].Kod, sp[i].Soluong);
    }
    void Ghifile(Sanpham sp[], int n)
    {
    FILE *FileOut;
    fopen_s(&FileOut, "f1.txt", "w");
    for (int i = 0; i < n; i++)
    fprintf(FileOut, "\n%-10i %-30s %-10i %-10i\n", sp[i].Nomer, sp[i].Tensp, sp[i].Kod, sp[i].Soluong);
    fclose(FileOut);
    }
    int main()
    {
    int n;
    Sanpham sp[N];
    Nhap(sp, n);
    Xuat(sp, n);
    Ghifile(sp, n);
    getchar();
    return 0;
    }
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		Chưa có tên.jpg
Lần xem:	0
Size:		34.3 KB
ID:		59706
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

  2. #2
    Ngày gia nhập
    01 2013
    Bài viết
    1,479

    Câu fflush(stdin) đã bị loại bỏ từ VS 2015 trở đi, vì đơn giản là nó phi chuẩn (chỉ có flush luồng ghi chứ flush luồng đọc nghĩa là thế nào?).

    scanf() luôn để lại gì đó trên stdin chứ không đọc hết, trường hợp đơn giản thì bỏ qua '\n' thôi.

  3. #3
    Ngày gia nhập
    12 2017
    Bài viết
    5

    cảm ơn bạn, trong trường hợp này làm sao để nhập được chuỗi ký tự vậy bạn
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn