在實(shí)際項(xiàng)目中,stdin
(標(biāo)準(zhǔn)輸入)通常用于從控制臺(tái)或其他輸入源讀取數(shù)據(jù)
命令行參數(shù)解析:
當(dāng)編寫一個(gè)命令行程序時(shí),你可能需要處理用戶提供的參數(shù)。這些參數(shù)可以通過argc
和argv
傳遞給main
函數(shù),但有時(shí)你可能還需要從用戶那里獲取更多信息。這時(shí),你可以使用stdin
來讀取用戶輸入。
#include<iostream>
#include<string>
int main(int argc, char* argv[]) {
if (argc < 2) {
std::cerr << "Usage: "<< argv[0] << " <filename>"<< std::endl;
return 1;
}
std::string filename = argv[1];
std::cout << "You provided the filename: "<< filename<< std::endl;
std::string input;
std::cout << "Please enter some text: ";
std::getline(std::cin, input);
std::cout << "You entered: "<< input<< std::endl;
return 0;
}
交互式程序:
對(duì)于交互式程序,如聊天客戶端或游戲,stdin
是用于接收用戶輸入的常用方法。
#include<iostream>
#include<string>
int main() {
std::string input;
while (true) {
std::cout << "Enter a message (type 'exit' to quit): ";
std::getline(std::cin, input);
if (input == "exit") {
break;
}
std::cout << "You said: "<< input<< std::endl;
}
return 0;
}
重定向輸入:
在處理文件或其他數(shù)據(jù)流時(shí),你可能需要從文件或其他源讀取數(shù)據(jù)。這時(shí),你可以使用文件重定向(如<
)將數(shù)據(jù)流重定向到stdin
。
#include<iostream>
#include<string>
int main() {
std::string line;
while (std::getline(std::cin, line)) {
std::cout << "Read line: "<< line<< std::endl;
}
return 0;
}
在這個(gè)例子中,你可以將文件名作為命令行參數(shù)傳遞給程序,或者使用文件重定向?qū)⑽募?nèi)容傳遞給程序。例如:
$ my_program< input.txt
這將使程序從input.txt
文件中讀取數(shù)據(jù),并將每一行輸出到控制臺(tái)。