C語(yǔ)言 scanf輸入多個(gè)數(shù)字只能以逗號(hào)分隔的操作
C之scanf輸入多個(gè)數(shù)字只能以逗號(hào)分隔,而不能用空格 TAB空白符分隔
#include <stdio.h>
int main()
{
int num_max(int x,int y,int z);
int a,b,c,max;
scanf("%d,%d,%d",&a,&b,&c);
max=num_max(a,b,c);
printf("max=%d",max);
return 0;
}
int num_max(int x,int y,int z)
{
int max=z;
if(max<x)max=x;
if(max<y)max=y;
return(max);
}
原因是scanf 對(duì)于數(shù)字輸入,會(huì)忽略輸入數(shù)據(jù)項(xiàng)前面的空白字符。因此只能以逗號(hào)分隔。
補(bǔ)充知識(shí):c++中讀入逗號(hào)分隔的一組數(shù)據(jù)
如題,在面試和實(shí)際應(yīng)用中,經(jīng)常會(huì)碰到一個(gè)場(chǎng)景:讀入以指定符號(hào)間隔的一組數(shù)據(jù),放入數(shù)組當(dāng)中。
看了不少博客,總結(jié)了一個(gè)個(gè)人目前覺(jué)得比較簡(jiǎn)便的方法(其實(shí)和java比也一點(diǎn)不簡(jiǎn)便。。。。)
基本思路就是:將輸入的數(shù)據(jù)讀到string中,然后將string中的間隔符號(hào)用空格代替后,輸入到stringstream流中,然后輸入到指定的文件和數(shù)組中去
具體代碼如下:
// cin,.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "iostream"
#include <string>
#include <sstream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
string strTemp;
int array[4];
int i = 0;
stringstream sStream;
cin >> strTemp;
int pos = strTemp.find(',');
while (pos != string::npos)
{
strTemp = strTemp.replace(pos, 1, 1, ' '); //將字符串中的','用空格代替
pos = strTemp.find(',');
}
sStream << strTemp; //將字符串導(dǎo)入的流中
while (sStream)
{
sStream >> array[i++];
}
for (int i = 0; i < 4; i++)
{
cout << array[i] << " ";
}
cout << endl;
return 0;
}
以上思路僅供參考,如果有更好的方案,歡迎提出和探討。希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
VisualStudio類(lèi)文件的管理(類(lèi)文件的分離)的實(shí)現(xiàn)
在使用?Visual?Studio?開(kāi)發(fā)項(xiàng)目的時(shí)候,學(xué)會(huì)進(jìn)行“類(lèi)文件的分離”十分重要,本文主要介紹了VisualStudio類(lèi)文件的管理(類(lèi)文件的分離)的實(shí)現(xiàn),感興趣的可以了解一下2024-03-03
C++ STL入門(mén)教程(6) set(集合)的使用方法
這篇文章主要為大家詳細(xì)介紹了C++ STL入門(mén)教程的第六篇,set集合的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
c++ lambda捕獲this 導(dǎo)致多線程下類(lèi)釋放后還在使用的錯(cuò)誤問(wèn)題
Lambda表達(dá)式是現(xiàn)代C++的一個(gè)語(yǔ)法糖,挺好用的。但是如果使用不當(dāng),會(huì)導(dǎo)致內(nèi)存泄露或潛在的崩潰問(wèn)題,這里總結(jié)下c++ lambda捕獲this 導(dǎo)致多線程下類(lèi)釋放后還在使用的錯(cuò)誤問(wèn)題,感興趣的朋友一起看看吧2023-02-02
詳解C++17中的decltype類(lèi)型推導(dǎo)
這篇文章主要介紹了C++17中的decltype類(lèi)型推導(dǎo),本文從泛型編程中經(jīng)常會(huì)遇到2個(gè)常見(jiàn)問(wèn)題入手,循序漸進(jìn)的分析了從C++11開(kāi)始引入的關(guān)鍵字decltype,需要的朋友可以參考下2023-06-06
詳解如何將Spire.PDF for C++集成到C++程序中
Spire.PDF for C++ 是一個(gè)專(zhuān)業(yè)的 PDF 庫(kù),供開(kāi)發(fā)人員在任何類(lèi)型的 C++ 應(yīng)用程序中閱讀、創(chuàng)建、編輯和轉(zhuǎn)換 PDF 文檔,本文主要介紹了兩種不同的方式將 Spire.PDF for C++ 集成到您的 C++ 應(yīng)用程序中,希望對(duì)大家有所幫助2023-11-11

