這個問題是從HackerRank,我嘗試使用%[^ \ n] s長詞。但是,輸出繼續產生.0C程序數組超過1個字
如何將%[^ \ n] s替換爲其他字符串以接收輸入?
這裏是輸入:
12
4.0
is the best place to learn and practice coding!
這裏是我的輸出:
16
8.0
HackerRank .0
這是預期的輸出:
16
8.0
HackerRank is the best place to learn and practice coding!
這是我完整的代碼,你可以看,它不認可%[^ \ n] s。如何解決這個問題呢?謝謝。
全碼:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main() {
int i = 4;
double d = 4.0;
char s[] = "HackerRank ";
// Declare second niteger, double, and String variables.
int value1, sum1, value2;
double e = 2.0, sum2;
char t[30];
// Read and save an integer, double, and String to your variables.
scanf(" %d", &value1);
scanf("%d", &value2);
scanf("%[^\n]s", t); //** POINT OF INTEREST **
// Print the sum of both integer variables on a new line.
sum1 = value1 + i;
printf("%d\n", sum1);
// Print the sum of the double variables on a new line.
sum2 = d * e;
printf("%.1lf\n", sum2);
// Concatenate and print the String variables on a new line
// The 's' variable above should be printed first.
printf("%s %s", s, t);
return 0;
}
請澄清一下您的問題。檢查[如何問](http://stackoverflow.com/help/how-to-ask)。 – Shubham
如何將%[^ \ n] s替換爲其他字符串以接收輸入? –
流中可能有一個換行符,從讀取的最後一個數字開始。這會導致'%[^ \ n]'失敗,因爲在下一個換行符之前沒有要讀取的字符。另外''''''''''''''''''''後面不需要''''。 – Dmitri