簡體   English   中英

如何關閉 C 中的指數符號?

[英]How can I turn off Exponenntial Notation in C?

please enter num1 , op , num2
2e2+6
result= 206.000000

Process returned 0 (0x0)   execution time : 8.657 s
Press any key to continue.

(如何使用)......任何方式關閉這個!

您不能直接執行此操作, scanf函數系列沒有標准格式說明符拒絕科學記數法(例如1e3 )用於floatdouble並且沒有直接方法可以“關閉” scanf接受科學記數法中的數字.

您可以做的是將輸入讀取為字符串。 然后您檢查字符串是否包含 'E' 或 'e' 並拒絕如果是這種情況。

這種天真的方法應該讓你知道你可以做什么:

#include <stdio.h>
#include <string.h>

int main()
{
  float x = 0;

  do
  {
    char buffer[100];
    scanf("%s", buffer);

    if (strchr(buffer, 'E') != NULL || strchr(buffer, 'e') != NULL)
    {
      printf("Rejected\n");
    }
    else
    {
      sscanf(buffer, "%f", &x);
      break;
    }
  } while (1);
  //...
}

除了明確檢查Ee的存在之外,您還可以檢查是否存在任何非數字和非小數點字符,如果緩沖區包含[0123456789.]未包含的任何字符,則 IOW 拒絕。

當然,您最終應該將此功能放入一個函數中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM