Vấn đề: Tôi cần phải có thể xác định khi hai khoảng trắng xuất hiện liên tục.Làm thế nào để đọc không gian màu trắng bằng cách sử dụng scanf trong c?
Tôi đã đọc các câu hỏi sau:
how to read a string from a \n delimited file
Và tôi biết vấn đề scanf: http://c-faq.com/stdio/scanfprobs.html
Input sẽ theo định dạng sau:
1 5 3 2 4 6 2 1 9 0
Hai khoảng trắng cho biết rằng bộ dữ liệu tiếp theo cần được xử lý và so sánh với chính nó. Độ dài của dòng không xác định và số hoặc số nguyên trong mỗi nhóm không xác định. Hai khoảng trắng là phần lớn nhất sẽ tách bộ dữ liệu tiếp theo.
Trong khi tôi có thể sử dụng các hàm và các chức năng khác nhau để giải quyết vấn đề này, tôi đang ở điểm giải quyết vấn đề với scanf tại thời điểm này sẽ dễ dàng hơn. Tuy nhiên, nếu đó không phải là trường hợp, sử dụng fgets, strtok và atoi sẽ làm hầu hết công việc nhưng tôi vẫn cần phải xác định hai khoảng trắng liên tiếp.
Phần dưới đây sẽ lấy số nguyên cho đến khi một số nguyên không được nhập vào.
while (scanf ("%d", &x) == 1)
Điều tôi cần làm là đọc khoảng trắng và nếu có hai khoảng trắng liên tiếp, tôi sẽ chương trình làm điều gì đó khác với tập hợp dữ liệu tiếp theo.
Và một khi tôi nhận được một không gian trắng Tôi không biết làm thế nào để nói:
if ((input == "whitespace") && (previousInput == "whitespace")) ya da ya da else (input == "whitespace") ya da ya da else ya da ya da
tôi đánh giá cao thời gian của bạn và cảm ơn bạn đã giúp đỡ của bạn.
Bài học kinh nghiệm: Trong khi một giải pháp cho scanf được đăng tải dưới đây bởi Jonathan Leffler, giải pháp là một chút đơn giản hơn với getc (bằng cách đòi hỏi kiến thức ít thân mật của scanf bên trong, biểu thức thông thường và char). Nhìn lại kiến thức tốt hơn về các biểu thức thông thường, scanf và char sẽ làm cho vấn đề trở nên dễ dàng hơn và tất nhiên biết những chức năng nào có sẵn và cái nào sẽ là cái tốt nhất để sử dụng ngay từ đầu.
Đó là định dạng đầu vào khá ghê gớm. Nếu bạn chịu trách nhiệm về nó, hãy thiết kế lại nó. Nếu, như tôi nghi ngờ, bạn đã được giao bài tập về nhà, may mắn - họ là một nhóm tàn bạo, giáo viên của bạn. –
Lưu ý rằng 'khoảng trắng' khác với 'hai khoảng trắng'; 'khoảng trắng' thông thường có nghĩa là nhiều ký tự có thể, bao gồm tab và trống (hoặc khoảng trắng) và đôi khi tạo thành nguồn cấp dữ liệu, tab dọc hoặc dòng mới; và đôi khi cũng là backspace. –
@ Jonathan Leffler: ít nhất anh ấy không cố gắng phân tích Khoảng trắng (http://compsoc.dur.ac.uk/whitespace/) – ninjalj