<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      張德長

      導航

      C和C++練習

      要點:

      1、數組

      2、冒泡排序BubbleSort

      3、帶指針的結構體(malloc,free)

      4、字符串操作(拷貝、逆序、比較)

      5、格式化輸出printf,sprintf

      6、格式化輸入,scanf,sscanf

      7、文件操作fopen,feof,EOF,fputc,fgetc,fputs,fgets,stdin,stdout

      8、數組傳參(需要指定長度)、字符串傳參(不需指定長度,\0結尾)

      #define _CRT_SECURE_NO_WARNINGS
      //#pragma warning(diable:4996)
      #include <iostream>
      using namespace std;
      #include <vector>
      
      
      //遍歷測試
      void foreachTest()
      {
      	vector<int> vec{ 1,3,5,6,7,5,3 };
      	for (auto a : vec)
      	{
      		cout << a << ",";
      	}
      	cout << endl;
      	for (auto a : vec)
      	{
      		a *= 3;
      	}
      	for (auto a : vec)
      	{
      		cout << a << ",";
      	}
      	cout << endl;
      
      	for (auto& a : vec)
      	{
      		a *= 3;
      	}
      	for (auto a : vec)
      	{
      		cout << a << ",";
      	}
      	cout << endl;
      	//  1, 3, 5, 6, 7, 5, 3,
      	//	1, 3, 5, 6, 7, 5, 3,
      	//	3, 9, 15, 18, 21, 15, 9,
      	//	請按任意鍵繼續. . .
      }
      //拉姆達表達式測試
      void lambdaTest()
      {
      	int a = 1;
      	int b = 2;
      	auto f = [a, &b] {
      		cout << "a= " << a << endl;
      		cout << "b= " << b << endl;
      		//a++;//表達式必須是可修改的左值
      		b++;//OK
      	};
      	f();
      	f();
      	f();
      	cout << "final b= " << b << endl;
      
      }
      //a = 1
      //b = 2
      //a = 1
      //b = 3
      //a = 1
      //b = 4
      //final b = 5
      //請按任意鍵繼續. . .
      
      #include <functional>
      
      //拉姆達表達式作為返回值
      function<int(int, int)> returnLambda()
      {
      	return [](int x, int y) {return x + y; };
      }
      //評分1
      void scoreTest1()
      {
      	int score;
      	printf("請輸入分數:");
      	scanf("%d", &score);
      	if (score >= 90)
      	{
      		printf("優秀\n");
      	}
      	else if (score >= 80)
      	{
      		printf("良好\n");
      	}
      	else if (score >= 60)
      	{
      		printf("及格\n");
      	}
      	else
      	{
      		printf("不及格\n");
      	}
      
      }
      //評分2
      void scoreTest2()
      {
      	int score2;
      	printf("請輸入分數:");
      	scanf("%d", &score2);
      	switch (score2 / 10)
      	{
      	case(10):
      		printf("優秀\n");
      		break;
      	case(9):
      		printf("優秀\n");
      		break;
      	case(8):
      		printf("良好\n");
      		break;
      	case(7):
      		printf("及格\n");
      		break;
      	case(6):
      		printf("及格\n");
      		break;
      
      	default:
      		printf("不及格\n");
      		break;
      	}
      }
      //評分3
      void scoreTest3()
      {
      	int score;
      	printf("請輸入分數:");
      	scanf("%d", &score);
      	switch (score / 10)
      	{
      	case(10):
      	case(9):
      		printf("優秀\n");
      		break;
      	case(8):
      		printf("良好\n");
      		break;
      	case(7):
      	case(6):
      		printf("及格\n");
      		break;
      	default:
      		printf("不及格\n");
      		break;
      	}
      
      }
      //三只小豬的游戲
      void threePigs1()
      {
      	int pig1, pig2, pig3;
      	printf("請輸入三只小豬的重量,以空格分隔:\n");
      	scanf("%d %d %d", &pig1, &pig2, &pig3);
      	if (pig1 > pig2)
      	{
      		if (pig1 > pig3)
      		{
      			printf("第1只小豬最重:%d\n", pig1);
      		}
      		else
      		{
      			printf("第3只小豬最重:%d\n", pig3);
      		}
      	}
      	else
      	{
      		if (pig2 > pig3)
      		{
      			printf("第2只小豬最重:%d\n", pig2);
      		}
      		else
      		{
      			printf("第3只小豬最重:%d\n", pig3);
      		}
      	}
      }
      
      void sevenGame()
      {
      	int start = 1;
      	while (start <= 100)
      	{
      		if (start % 7 == 0 || start % 10 == 7 || start / 10 == 7)
      		{
      			printf("拍桌子\n");
      		}
      		else
      		{
      			printf("%d\n", start);
      		}
      		start++;
      	}
      }
      //格式化打印 測試
      void printTest1()
      {
      	int n = 70000;
      	printf("%%hd= %hd\n", n);
      	printf("%%d= %d\n", n);
      	printf("%%ld= %d\n", n);
      
      
      
      	printf("%%x= %x\n", n);
      	printf("%%X= %X\n", n);
      	printf("%%#x= %#x\n", n);
      	printf("%%#X= %#X\n", n);
      
      	char str1[] = "hello world";
      	printf("%%s= %s\n", str1);
      	printf("%%c= %c\n", str1);
      	char str2[] = { 'h','e','l','l','o',' ','w','o','r','l','d' };
      	printf("%%s= %s\n", str2);
      	printf("%%c= %c\n", str2);
      
      	float f = 3.14;
      	printf("%%f= %f\n", f);
      
      	printf("%%lf= %lf\n", f);
      	printf("%%e= %e\n", f);
      	printf("%%le= %le\n", f);
      	printf("%%E= %E\n", f);
      	printf("%%LE= %LE\n", f);
      	printf("%%g= %g\n", f);
      	printf("%%lg= %lg\n", f);
      	printf("%%G= %G\n", f);
      	printf("%%LG= %LG\n", f);
      
      	double d = 123.456789;
      
      	printf("%%f= %f\n", d);
      	printf("%%8.1f= %5.1f %5.1f\n", d, d);
      	printf("%%8.2f= %5.2f %5.2f\n", d, d);
      	printf("%%5.3f= %5.3f\n", d);
      	printf("%%5.4f= %5.4f\n", d);
      
      	int m = 5678;
      	printf("%%d= %d\n", m);
      	printf("%%1d= %1d\n", m);
      	printf("%%2d= %2d\n", m);
      	printf("%%3d= %3d\n", m);
      	printf("%%4d= %4d\n", m);
      
      
      	unsigned int u = 10;
      	unsigned short uh = 20;
      	unsigned long ul = 30;
      	unsigned long long ull = 40;
      	printf("%%u= %u\n", u);
      	printf("%%hu= %hu\n", uh);
      	printf("%%lu= %lu\n", ul);
      	printf("%%llu= %llu\n", ull);
      }
      //% hd = 4464
      //% d = 70000
      //% ld = 70000
      //% x = 11170
      //% X = 11170
      //% #x = 0x11170
      //% #X = 0X11170
      //% s = hello world
      //% c =
      //% s = hello world燙燙燙燙蘦ello world
      //% c = ?
      //% f = 3.140000
      //% lf = 3.140000
      //% e = 3.140000e+00
      //% le = 3.140000e+00
      //% E = 3.140000E+00
      //% LE = 3.140000E+00
      //% g = 3.14
      //% lg = 3.14
      //% G = 3.14
      //% LG = 3.14
      //% f = 123.456789
      //% 8.1f = 123.5 123.5
      //% 8.2f = 123.46 123.46
      //% 5.3f = 123.457
      //% 5.4f = 123.4568
      //% d = 5678
      //% 1d = 5678
      //% 2d = 5678
      //% 3d = 5678
      //% 4d = 5678
      //% u = 10
      //% hu = 20
      //% lu = 30
      //% llu = 40
      //請按任意鍵繼續. . .
      
      //數組測試1
      void arrTest1()
      {
      	int arr1[5] = { 1,2,3 };
      	size_t len1 = sizeof(arr1) / sizeof(arr1[0]);
      	printf("len of arr1= %d\n", len1);
      	printf("arr1= %p\n", arr1);
      	for (size_t i = 0; i < len1; i++)
      	{
      		printf("&arr1[%u]= %p , arr1[%u]= %p\n", i, &arr1[i], i, arr1[i]);
      	}
      	int arr2[10] = {  };//全部初始化為0
      	size_t len2 = sizeof(arr2) / sizeof(arr2[0]);
      	printf("len of arr2= %d\n", len2);
      	for (size_t i = 0; i < len2; i++)
      	{
      		printf("arr2[%u]= %d\n", i, arr2[i]);
      	}
      	int arr3[] = { 3,4,5 };
      	size_t len3 = sizeof(arr3) / sizeof(arr3[0]);
      	printf("len of arr3= %d\n", len3);
      	for (size_t i = 0; i < len3; i++)
      	{
      		printf("arr3[%u]= %d\n", i, arr3[i]);
      	}
      	int arr4[6];
      	size_t len4 = sizeof(arr4) / sizeof(arr4[0]);
      	printf("len of arr4= %d\n", len4);
      	for (size_t i = 0; i < len4; i++)
      	{
      		printf("arr4[%u]= %d\n", i, arr4[i]);
      	}
      }
      
      //len of arr1 = 5
      //arr1 = 00CFF6D4
      //& arr1[0] = 00CFF6D4, arr1[0] = 00000001
      //& arr1[1] = 00CFF6D8, arr1[1] = 00000002
      //& arr1[2] = 00CFF6DC, arr1[2] = 00000003
      //& arr1[3] = 00CFF6E0, arr1[3] = 00000000
      //& arr1[4] = 00CFF6E4, arr1[4] = 00000000
      //len of arr2 = 10
      //arr2[0] = 0
      //arr2[1] = 0
      //arr2[2] = 0
      //arr2[3] = 0
      //arr2[4] = 0
      //arr2[5] = 0
      //arr2[6] = 0
      //arr2[7] = 0
      //arr2[8] = 0
      //arr2[9] = 0
      //len of arr3 = 3
      //arr3[0] = 3
      //arr3[1] = 4
      //arr3[2] = 5
      //len of arr4 = 6
      //arr4[0] = -858993460
      //arr4[1] = -858993460
      //arr4[2] = -858993460
      //arr4[3] = -858993460
      //arr4[4] = -858993460
      //arr4[5] = -858993460
      
      
      //數組測試2
      void arrTest2()
      {
      	int arr[] = { 1,2,3 };
      	int* p = arr;
      	size_t len = sizeof(arr) / sizeof(arr[0]);
      	for (size_t i = 0; i < len; i++)
      	{
      		printf("arr[%u]= %d\n", i, arr[i]);
      		printf("*(arr+%u)= %d\n", i, *(arr + i));
      		printf("p[%u]= %d\n", i, p[i]);
      		printf("*(p+%u)= %d\n", i, *(p + i));
      		printf("\n");
      	}
      }
      //arr[0] = 1
      //* (arr + 0) = 1
      //p[0] = 1
      //* (p + 0) = 1
      //
      //arr[1] = 2
      //* (arr + 1) = 2
      //p[1] = 2
      //* (p + 1) = 2
      //
      //arr[2] = 3
      //* (arr + 2) = 3
      //p[2] = 3
      //* (p + 2) = 3
      
      //冒泡排序
      void BubbleSort(int* arr, size_t len, bool ascending = true)
      {
      	int temp;
      	for (size_t i = 0; i < len - 1; i++)
      	{
      		for (size_t j = 0; j < len - 1 - i; j++)
      		{
      			if (ascending ? arr[j] > arr[j + 1]:arr[j] < arr[j + 1])
      			{
      				temp = arr[j];
      				arr[j] = arr[j + 1];
      				arr[j + 1] = temp;
      			}
      		}
      	}
      }
      //冒泡排序 測試
      void SortTest1()
      {
      	int arr[] = { 4,65,33,5,7,88,2,6,23 };
      	size_t len = sizeof(arr) / sizeof(arr[0]);
      	BubbleSort(arr, len, false);
      	for (size_t i = 0; i < len; i++)
      	{
      		printf("%d ", arr[i]);
      	}
      	printf("\n");
      }
      
      void printSize(int* arr)
      {
      	printf("size of arr arg = %u\n", sizeof(arr));
      }
      
      void sizeTest()
      {
      	int arr[] = { 4,5,6,7,8 };
      	printf("size of arr = %u\n", sizeof(arr));
      	printSize(arr);
      }
      //size of arr = 20
      //size of arr arg = 4
      //請按任意鍵繼續. . .
      
      //字符串比較1
      int strCmp1(char* str1, char* str2)
      {
      	int i = 0;
      	while (str1[i] == str2[i])
      	{
      		if (str1[i] == '\0')
      		{
      			return 0;
      		}
      		i++;
      	}
      	return str1[i] > str2[i] ? 1 : -1;
      }
      //字符串比較2
      int strCmp2(char* str1, char* str2)
      {
      	int i = 0;
      	while (*(str1 + i) == *(str2 + i))
      	{
      		if (*(str1 + i) == '\0')
      		{
      			return 0;
      		}
      		i++;
      	}
      	return (*(str1 + i)) > (*(str2 + i)) ? 1 : -1;
      }
      //字符串比較 測試
      void strCmpTest()
      {
      	char str1[] = "hello";
      	char str2[] = "hello";
      	int res = strCmp2(str1, str2);
      	printf("str1= %s\n", str1);
      	printf("str2= %s\n", str2);
      	if (res == 0)
      	{
      		printf("str1==str2\n");
      	}
      	else if (res == 1)
      	{
      		printf("str1>str2\n");
      
      	}
      	else if (res == -1)
      	{
      		printf("str1<str2\n");
      	}
      }
      //str1 = hello
      //str2 = hello world
      //str1 < str2
      //請按任意鍵繼續. . .
      //str1 = hello
      //str2 = hella
      //str1 > str2
      //請按任意鍵繼續. . .
      //str1 = hello
      //str2 = hello
      //str1 == str2
      //請按任意鍵繼續. . .
      void strTest1()
      {
      	char str1[] = "abc";
      	char str2[] = { 'a','b','c' };
      	//char* str3 = "abc";//錯誤	"const char *" 類型的值不能用于初始化 "char *" 類型的實體
      
      	//char* str4 = { 'a','b','c' }; //錯誤 初始值設定項值太多	
      	printf("str1= %s\n", str1);
      	printf("str2= %s\n", str2);
      	str1[0] = 'R';
      	str2[0] = 'X';
      	printf("str1= %s\n", str1);
      	printf("str2= %s\n", str2);
      }
      //str1 = abc
      //str2 = abc燙燙燙燙蘟bc
      //str1 = Rbc
      //str2 = Xbc燙燙燙燙蘎bc
      //請按任意鍵繼續. . .
      
      //字符串拷貝1
      void strCpy1(char* src, char* dst)
      {
      	int i = 0;
      	while (src[i] != '\0')
      	{
      		dst[i] = src[i];
      		i++;
      	}
      	dst[i] = '\0';
      }
      //字符串拷貝2
      void strCpy2(char* src, char* dst)
      {
      	int i = 0;
      	while (*(src + i) != '\0')
      	{
      		*(dst + i) = *(src + i);
      		i++;
      	}
      	*(dst + i) = '\0';
      }
      //字符串拷貝3
      void strCpy3(char* src, char* dst)
      {
      	while (*src != '\0')
      	{
      		*dst = *src;
      		dst++;
      		src++;
      	}
      	*dst = '\0';
      }
      //移除空格1
      void removeSpace1(char* src, char* dst)
      {
      	int i = 0, j = 0;
      	while (src[i] != '\0')
      	{
      		if (src[i] != ' ')
      		{
      			dst[j] = src[i];
      			j++;
      		}
      		i++;
      	}
      	dst[j] = '\0';
      }
      //移除空格2
      void removeSpace2(char* src, char* dst)
      {
      	int i = 0, j = 0;
      	while (*(src + i) != '\0')
      	{
      		if (*(src + i) != ' ')
      		{
      			*(dst + j) = *(src + i);
      			j++;
      		}
      		i++;
      	}
      	*(dst + j) = '\0';
      }
      //移除空格3
      void removeSpace3(char* src, char* dst)
      {
      	while (*src != '\0')
      	{
      		if (*src != ' ')
      		{
      			*dst = *src;
      			dst++;
      		}
      		src++;
      	}
      	*dst = '\0';
      }
      //字符串拷貝測試
      void strCpyTest()
      {
      	char src[] = "ni chou sha chou ni za di";
      	size_t len = sizeof(src);
      	printf("len of src = %d\n", len);
      	char dst1[sizeof(src)] = {};
      	strCpy1(src, dst1);
      	char dst2[sizeof(src)] = {};
      	strCpy2(src, dst2);
      	printf("src= %s\n", src);
      	printf("copy dst1= %s\n", dst1);
      	printf("copy dst2= %s\n", dst2);
      
      	char dst3[sizeof(src)] = {};
      	char dst4[sizeof(src)] = {};
      	removeSpace1(src, dst3);
      	removeSpace2(src, dst4);
      	printf("remove space dst3= %s\n", dst3);
      	printf("remove space dst4= %s\n", dst4);
      
      	char dst5[sizeof(src)] = {};
      	strCpy3(src, dst5);
      	printf("copy dst5= %s\n", dst5);
      
      	char dst6[sizeof(src)] = {};
      	removeSpace3(src, dst6);
      	printf("remove space dst6= %s\n", dst6);
      
      
      }
      //len of src = 26
      //src = ni chou sha chou ni za di
      //copy dst1 = ni chou sha chou ni za di
      //copy dst2 = ni chou sha chou ni za di
      //remove space dst3 = nichoushachounizadi
      //remove space dst4 = nichoushachounizadi
      //copy dst5 = ni chou sha chou ni za di
      //remove space dst6 = nichoushachounizadi
      //請按任意鍵繼續. . .
      
      //統計子串個數
      int subCount(char* src, char* sub)
      {
      	int count = 0;
      	char* p = strstr(src, sub);
      	while (p != NULL)
      	{
      		count++;
      		p++;
      		p = strstr(p, sub);
      	}
      	return count;
      }
      //子串個數測試
      void subCountTest()
      {
      	char src[] = "hello world,hello ladies hello gentleman";
      	char sub[] = "llo";
      	int ret = subCount(src, sub);
      	printf("src= %s\n", src);
      	printf("sub= %s\n", sub);
      	printf("count= %d\n", ret);
      }
      //src = hello world, hello ladies hello gentleman
      //sub = llo
      //count = 3
      //請按任意鍵繼續. . .
      
      //字符串逆序1
      void strReverse1(char* str)
      {
      	char temp;
      	size_t len = strlen(str);
      	for (size_t i = 0; i < len - 1 - i; i++)
      	{
      		temp = str[i];
      		str[i] = str[len - 1 - i];
      		str[len - 1 - i] = temp;
      	}
      }
      //字符串逆序2
      void strReverse2(char* str)
      {
      	char* start = str;
      	char* end = str + strlen(str) - 1;
      	char temp;
      	while (start < end)
      	{
      		temp = *start;
      		*start = *end;
      		*end = temp;
      		start++;
      		end--;
      	}
      }
      //字符串逆序測試
      void strReverseTest()
      {
      	char str[] = "hello";
      	printf("str= %s\n", str);
      	strReverse1(str);
      	printf("reverse= %s\n", str);
      	strReverse2(str);
      	printf("recovery= %s\n", str);
      }
      //str = hello
      //reverse = olleh
      //recovery = hello
      //請按任意鍵繼續. . .
      
      //判斷回文字符串
      int str_aba(char* str)
      {
      	char* start = str;
      	char* end = str + strlen(str) - 1;
      	while (start < end)
      	{
      		if (*start != *end)
      		{
      			return 0;
      		}
      		start++;
      		end--;
      	}
      	return 1;
      }
      
      int strLen_noSpace(char* str)
      {
      	int count = 0;
      	while (*str)
      	{
      		if (*str != ' ')
      		{
      			count++;
      		}
      		str++;
      	}
      	return	count;
      }
      //帶一級指針的結構體
      struct Person
      {
      	char* name;
      	int age;
      };
      void allocPerson(Person*** pPersons, int len)
      {
      	if (pPersons == NULL)
      	{
      		return;
      	}
      	*pPersons = (Person**)malloc(sizeof(Person*) * len);
      	for (size_t i = 0; i < len; i++)
      	{
      		(*pPersons)[i] = (Person*)malloc(sizeof(struct Person));
      		(*pPersons)[i]->name = (char*)malloc(sizeof(char) * 64);
      		sprintf((*pPersons)[i]->name, "person_%u", i + 1);
      		(*pPersons)[i]->age = i + 20;
      	}
      }
      void printPerson(Person** persons, int len)
      {
      	for (size_t i = 0; i < len; i++)
      	{
      		printf("name=%s,age=%d\n", persons[i]->name, persons[i]->age);
      	}
      }
      void freePerson(Person** persons, int len)
      {
      	if (persons == NULL || len < 1)
      	{
      		return;
      	}
      	for (size_t i = 0; i < len; i++)
      	{
      		if (persons[i] != NULL)
      		{
      			if (persons[i]->name != NULL)
      			{
      				free(persons[i]->name);
      				persons[i]->name = NULL;
      			}
      			free(persons[i]);
      			persons[i] = NULL;
      		}
      	}
      	free(persons);
      	persons = NULL;
      }
      void personTest()
      {
      	Person** persons = NULL;
      	int len = 4;
      	allocPerson(&persons, len);
      	printPerson(persons, len);
      	freePerson(persons, len);
      }
      //name = person_1, age = 20
      //name = person_2, age = 21
      //name = person_3, age = 22
      //name = person_4, age = 23
      //請按任意鍵繼續. . .
      
      //帶二級指針的結構體
      struct Teacher
      {
      	char* name;
      	char** students;
      };
      //分配堆空間
      void allocTeacher(Teacher*** pTeachers, int lenTeacher, int lenStudent)
      {
      	if (pTeachers==NULL)
      	{
      		return;
      	}
      	(*pTeachers) =(Teacher**) malloc(sizeof(Teacher*)*lenTeacher);
      	for (size_t i = 0; i < lenTeacher; i++)
      	{
      		(*pTeachers)[i] =(Teacher*) malloc(sizeof(Teacher));
      		(*pTeachers)[i]->name = (char*)malloc(sizeof(char) * 64);
      		sprintf((*pTeachers)[i]->name,"teacher_%d",i+1);
      		(*pTeachers)[i]->students = (char**)malloc(sizeof(char*) * lenStudent);
      		for (size_t j = 0; j < lenStudent; j++)
      		{
      			(*pTeachers)[i]->students[j] = (char*)malloc(sizeof(char) * 64);
      			sprintf((*pTeachers)[i]->students[j], "teacher_%d_student_%d", i + 1, j + 1);
      		}
      	}
      
      }
      //打印數據
      void printTeacher(Teacher** teachers, int lenTeacher, int lenStudent)
      {
      	for (size_t i = 0; i <lenTeacher; i++)
      	{
      		printf("%s\n",teachers[i]->name);
      		for (size_t j = 0; j < lenStudent; j++)
      		{
      			printf("	%s\n", teachers[i]->students[j]);
      		}
      	}
      }
      //釋放堆空間
      void freeTeacher(Teacher** teachers, int lenTeacher, int lenStudent)
      {
      	if (teachers==NULL||lenTeacher<1)
      	{
      		return;
      	}
      	for (size_t i = 0; i < lenTeacher; i++)
      	{
      		if (teachers[i]!=NULL)
      		{
      			if (teachers[i]->name!=NULL)
      			{
      				free(teachers[i]->name);
      				teachers[i]->name = NULL;
      			}
      			if (teachers[i]->students!=NULL&&lenStudent>0)
      			{
      				for (size_t j = 0; j < lenStudent; j++)
      				{
      					if (teachers[i]->students[j]!=NULL)
      					{
      						free(teachers[i]->students[j]);
      						teachers[i]->students[j] = NULL;
      					}
      				}
      				free(teachers[i]->students);
      				teachers[i]->students = NULL;
      			}
      			free(teachers[i]);
      		}
      	}
      	free(teachers);
      	teachers = NULL;
      }
      //帶二級指針的結構體 測試
      void teacherTest()
      {
      	Teacher** teachers = NULL;
      	int lenTeacher = 3;
      	int lenStudent = 4;
      	allocTeacher(&teachers,lenTeacher,lenStudent);
      	printTeacher(teachers,lenTeacher,lenStudent);
      	freeTeacher(teachers,lenTeacher,lenStudent);
      }
      //teacher_1
      //teacher_1_student_1
      //teacher_1_student_2
      //teacher_1_student_3
      //teacher_1_student_4
      //teacher_2
      //teacher_2_student_1
      //teacher_2_student_2
      //teacher_2_student_3
      //teacher_2_student_4
      //teacher_3
      //teacher_3_student_1
      //teacher_3_student_2
      //teacher_3_student_3
      //teacher_3_student_4
      //請按任意鍵繼續. . .
      
      void fileTest1()
      {
      	char file[] = "C:\\Users\\Dell\\Desktop\\test.txt";
      	FILE* pf = fopen(file,"w");
      	if (pf == NULL)
      	{
      		perror("file open failed");
      		return;
      	}
      	for (size_t i = 0; i < 26; i++)
      	{
      		putc('a'+i,pf);
      	}
      	fclose(pf);
      }
      void fileTest2()
      {
      	char file[] = "C:\\Users\\Dell\\Desktop\\test.txt";
      	FILE* pf = fopen(file,"r");
      	if (pf==NULL)
      	{
      		perror("file open for read failed");
      		return;
      	}
      	char c;
      	while (1)
      	{
      		c = getc(pf);
      		if (c==EOF)
      		{
      			break;
      		}
      		printf("%c",c);
      	}
      	printf("\n");
      	fclose(pf);
      
      }
      //abcdefghijklmnopqrstuvwxyz
      void fileTest3()
      {
      	char file[] = "C:\\Users\\Dell\\Desktop\\test.txt";
      	FILE* pf = fopen(file,"r");
      	char c;
      	while (!feof(pf))
      	{
      		c=getc(pf);
      		printf("%c",c);
      	}
      	printf("\n");
      	fclose(pf);
      }
      //abcdefghijklmnopqrstuvwxyz
      
      void fgetsTest()
      {
      	char buf[10];
      	printf("%s",fgets(buf,10,stdin));
      }
      //hello
      //hello
      //請按任意鍵繼續. . .
      //helloworld
      //helloworl請按任意鍵繼續. . .
      //無論緩存長度是否足夠,一定會添加\0,
      //如果長度不夠,則會舍棄\n和結尾的其他字符,以_MaxCount為準
      void fputsTest()
      {
      	char str[] = "hello";
      	fputs(str,stdout);
      }
      //hello請按任意鍵繼續. . .
      //寫入的內容,不會添加\n
      
      //將控制臺的輸入內容寫入文件
      //以:q表示退出
      //可以支持多行文本寫入
      void consoleToFile()
      {
      	char buf[1024];
      
      	char file[] = "C:\\Users\\Dell\\Desktop\\console.txt";
      	FILE* fp = fopen(file,"w");
      	if (fp==NULL)
      	{
      		perror("fopen error");
      		return;
      	}
      	while (1)
      	{
      		fgets(buf, 1024, stdin);
      		if (strcmp(buf,":q\n")==0)
      		{
      			break;
      		}
      		fputs(buf,fp);
      	}
      	fclose(fp);
      }
      //基于文件的計算器
      void fileCalculate()
      {
      	char file1[] = "C:\\Users\\Dell\\Desktop\\calculate1.txt";
      	char file2[] = "C:\\Users\\Dell\\Desktop\\calculate2.txt";
      	FILE* pf1 = fopen(file1,"r");
      	FILE* pf2 = fopen(file2,"w");
      	if (pf1==NULL|| pf2 == NULL)
      	{
      		perror("fopen error");
      		return;
      	}
      	char buf[1024];
      	int a, b, r=0;
      	char c;
      	while (!feof(pf1))
      	{
      		fgets(buf,1024,pf1);
      		sscanf(buf,"%d%c%d=\n",&a,&c,&b);
      		switch (c)
      		{
      		case '+':
      			r = a + b; break;
      		case '-':
      			r = a - b; break;
      		case '*':
      			r = a * b; break;
      		case '/':
      			r = a / b; break;
      		default:
      			break;
      		}
      		sprintf(buf, "%d%c%d=%d\n",a,c,b,r);
      		fputs(buf,pf2);
      	}
      	fclose(pf1);
      	fclose(pf2);
      
      }
      //輸入文件
      //1 + 2 =
      //44 / 4 =
      //8 - 3 =
      //5 * 6 =
      //輸出文件
      //1 + 2 = 3
      //44 / 4 = 11
      //8 - 3 = 5
      //5 * 6 = 30
      
      void cinTest()
      {
      	float f = 0.1f;
      	cout << "請輸入一個浮點數:" << endl;
      	cin >> f;
      	cout << "浮點數f= " << f << endl;
      	bool b = false;
      	cout << "請輸入一個布爾值:" << endl;
      	cin >> b;
      	cout << "布爾值b= " << b << endl;
      }
      //請輸入一個浮點數:
      //6.5
      //浮點數f = 6.5
      //請輸入一個布爾值:
      //55
      //布爾值b = 1
      //請按任意鍵繼續. . .
      //請輸入一個浮點數:
      //4
      //浮點數f = 4
      //請輸入一個布爾值:
      //true
      //布爾值b = 0
      //請按任意鍵繼續. . .
      
      
      
      
      
      //Main
      int main()
      {
      
      
      
      	cinTest();
      	//fileCalculate();
      	//consoleToFile();
      	//fputsTest();
      	//fgetsTest();
      	//fileTest1();
      	//fileTest2();
      	//fileTest3();
      	//teacherTest();
      	//personTest();
      	//strReverseTest();
      	//subCountTest();
      	//strCpyTest();
      	//strTest1();
      	//strCmpTest();
      	//sizeTest();
      	//SortTest1();
      	//arrTest2();
      	//arrTest1();
      	//printTest1();
      	//sevenGame();
      	//threePigs1();
      	//scoreTest3();
      	//scoreTest2();
      	//scoreTest1();
      	//lambdaTest();
      	//foreachTest();
      	system("pause");
      	return 0;
      }

       

      posted on 2023-12-17 20:22  張德長  閱讀(75)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 国产人与禽zoz0性伦多活几年 | 一区二区精品久久蜜精品| 97成人碰碰久久人人超级碰oo| 99国产午夜福利在线观看| 午夜欧美日韩在线视频播放 | 久久亚洲精品中文字幕无| 92国产精品午夜福利免费| 一区二区三区四区在线不卡高清| 中文字幕日韩精品人妻| 国内熟妇人妻色在线视频| 玖玖在线精品免费视频| 天堂av在线一区二区| 亚洲综合不卡一区二区三区| 欧美丰满熟妇xxxx性大屁股| 国产精品不卡一区二区久久| 2021亚洲国产精品无码| 锦屏县| 高清无码爆乳潮喷在线观看| 一区二区三区鲁丝不卡| 成年女人片免费视频播放A| 亚洲精品岛国片在线观看| 精品亚洲欧美无人区乱码| 欧美和黑人xxxx猛交视频| 麻豆国产黄色一级免费片| 起碰免费公开97在线视频| 亚洲自拍偷拍一区二区三区| 国产精品普通话国语对白露脸 | 撕开奶罩揉吮奶头视频| 女人香蕉久久毛毛片精品| 少妇人妻偷人免费观看| 亚洲人成色77777| 亚洲中文久久久精品无码| 天天操夜夜操| 久久夜色撩人精品国产av| 少妇人妻偷人免费观看| 莱州市| 香蕉久久久久久久av网站| 制服丝袜国产精品| 武装少女在线观看高清完整版免费| 一本av高清一区二区三区| 定州市|