#include <iostream>
using namespace std; // 可拆写为 using std::cout; using std::cin;

int main()
{
	// C-printf
	int iInt = 10;
	char cChar = 'Q';
	float fFloat = 31.41f;
	printf("the int is: %d\n", iInt);
	printf("the char is: %c\n", cChar);
	printf("the float is: %f\n", fFloat);
	printf("the string is: %s\n", "I LOVE YOU!");

	// C-printf 附加格式
		// 长整型 l-d,o,x,u
	printf("the long is: %ld\n", 1000000);
		// %ms:表示输出字符占m列
	printf("the string using 10 column: %10s\n", "WORLD");
		// %-ms:-表示字符串向左靠
	printf("the left alignment string using 10 column: %-10s\n", "WORLD");
		// %m.ns:表示占m列,但只取字符串中前n个字符,这n个字符向右靠
	printf("the string is: %10.3s\n", "WORLD");
		// %-m.ns
	printf("the string is: %-10.3s\n", "WORLD");

	// C-scanf
	int num1, num2;
	puts("Please enter two numbers(example:12 24):");
	scanf_s("%d %d", &num1, &num2);
	printf("the first number is: %d\n", num1);
	printf("the second is: %d\n", num2);

	// C-scanf 附加格式
	/*********************
	* l:用于输入长整型和double型 - %ld %lo %lx %lu  %lf %le
	* h:用于输入短整型数据 - %hd %ho %hx
	* n(整数):指定输入数据宽度
	* *:表示指定的输入项在读入后不赋给相应的值 - *%d
	**********************/

	// C++标准输出输入流 使用前需在头部声明 using namespace std;
	/*********************************
	* 1、在C++中,数据的输入和输出包括标准输入/输出设备(键盘、显示器)、外部存储介质(磁盘)上的文件和内存的存储空间3个方面的输入/输出
	* 2、标准I/O:对标准输入/输出设备的输入/输出
	* 3、文件I/O:对在外存磁盘上文件的输入/输出
	* 4、串I/O:对内存中指定的字符串存储空间的输入/输出
	* 5、流:C++中把数据之间的传输操作称为流
	* 6、输出流:数据从内存传送到某个载体或设备中
	* 7、输入流:数据从某个载体或设备传送到内存缓冲区变量中
	* 8、C++标准I/O操作有4个类对象:cin、cout、cerr、clog
	* 9、cin代表标准输入设备键盘,也称为cin流或标准输入流
	* 10、cout代表标准输出显示器,也称为cout流或标准输出流
	* 11、进行错误信息输出操作时使用cerr或clog
	* 12、cout <<表达式1<<表达式2<<......<<表达式n;
	* 13、cin >>变量1>>变量2>>......>>变量n;
	* 14、重载运算符“<<”和“>>”执行输入和输出操作。“<<”称为插入运算符;“>>”称为提取运算符
	**********************************/
	
    /*	不需使用 using namespace std;
		std::cout << "Hello World!\n";
	*/ 

	// 流操作的控制 iomanip.h - 包含控制流输出格式的函数

	int anum;
	cout << "Please enter a number:";
	cin >> anum;
	cout << "the number you enter is:" << anum;
	
	return 0;
}