2016-12-24 51 views
0

帶選項卡的浮動輸入行
我想從用戶的浮動輸入特定次數的方式,當用戶按Enter鍵,而不是作爲scanf去到下一行()自動執行,將光標向前移動一個選項卡(\ t)。

實施例:
5 -4 8 75
2 -7 4 11

注:我使用這個代碼來獲得浮點值到用於矩陣的陣列。如何使一個循環在一行中進行浮點輸入?

我曾嘗試以下的變化: -

int i=0,interval=10; 
float a[10]={0}; 

for (i=0;i<interval;i++) 
{ 
    scanf("%f",a[i]); 
    printf("\t"); 
    i++; 
} 


OR

int i=0; 
float a[10]={0}; 

while (a[i]=getche()!='\r') 
{ 
    printf("\t"); 
    i++; 
} 

,如果有人可以幫助我了,我真的很感激。

+1

爲什麼不在一行中輸入一行的所有值,然後按一次Enter? –

+1

沒有一種便捷的方式可以滿足您的要求,但@WeatherVane建議的是常見做法。 – DeiDei

+0

我知道這是怎麼回事,謝謝。我打算做的是詢問用戶在矩陣中有多少行和列,然後製作該矩陣的數組,並讓用戶向其中輸入數據。 我不想使用數十個scanf()語句。 –

回答

1

如果你使用的是Windows,你可以實際嘗試:

#include <conio.h> 

和:

char c[100]; 
int i = 0; 
float f; 
while ((c[i++]=getch())!='\t'); 
c[i++] = '\0'; 
f = atof(c); 

由於getch()讀取字符瞬間。

+1

有趣的解決方案(儘管 - 如同評論過的 - 一定不能移植)。它需要一些額外的檢查,用於輸入的總數,以及在用戶過早按下Enter的情況下。 – usr2564301

相關問題