日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++控制台读取和输出函数

發布時間:2025/6/15 c/c++ 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++控制台读取和输出函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

c中puts()函數
用來向標準輸出設備(屏幕)寫字符串并換行,其調用方式為,puts(s);其中s為字符串字符(字符串數組名或字符串指針)?!?  

功 能: 送一字符串到流stdout中   

用 法: int puts(char *string);   

程序例:   #include <stdio.h>   

int main(void)   

{   char string[] = "This is an example output string\n";   

  puts(string);   

return 0;   }

 說明:   puts 和 printf 的用法一樣,puts()函數的作用與語句“printf("%s\n",s);的作用相同。注意:puts在輸出字符串后回車符。   puts()函數只能輸出字符串,不能數值或進行格式變換。   可以將字符串直接寫入puts()函數中,輸出至屏幕。如:puts("Hello,Turo C2.0:");


putchar()函數,輸出單個字符,不自動換行
int main(void)   
{   char a,b,c;   
a='T',b='M',c='D';   
putchar(a);   putchar(b);putchar(c);putchar(\n);   
putchar(a);putchar('\n');   
putc? putchar
har(b);putchar('\n');   
putchar(c);putchar('\n');   
return 0;   }   
輸出結果為:   TMD   T   M   D


ctype.h文件中的處理字符串的函數
  1 字符測試函數   

1> 函數原型均為int isxxxx(int)   

2> 參數為int, 任何實參均被提升成整型   

3> 只能正確處理處于[0, 127]之間的值   

2 字符映射函數   

1> 函數原型為int toxxxx(int)   

2> 對參數進行檢測, 若符合范圍則轉換, 否則不變   

int tolower(int); 'A'~'Z' ==> 'a'~'z'   

int toupper(int); 'a'~'z' ==> 'A'~'Z'


strtod  strtod(將字符串轉換成浮點數)   
相關函數   atoi,atol,strtod,strtol,strtoul   表頭文件   #include<stdlib.h>   

定義函數   double strtod(const char *nptr,char **endptr);   

函數說明   strtod()會掃描參數nptr字符串,跳過前面的空格字符,直到遇上數字或正負符號才開始做轉換,到出現非數字或字符串結束時('\0')才結束轉換,并將結果返回。若endptr不為NULL,則會將遇到不合條件而終止的nptr中的字符指針由endptr傳回。參數nptr字符串可包含正負號、小數點或E(e)來表示指數部分。如123.456或123e-2。  

 返回值   返回轉換后的浮點型數。   附加說明   參考atof()。   

范例   #include<stdlib.h>   main()   

{   char *endptr;   char a[]="12345.6789";   

char b[]="1234.567qwer";   char c[]="-232.23e4";   

printf("a=%lf\n",strtod(a,NULL));   

printf("b=%lf\n",strtod(b,&endptr));   

printf("endptr=%s\n",endptr);   

printf("c=%lf\n",strtod(c,NULL));   }   

執行   

a=12345.678900   b=1234.567000   endptr=qwer   c=-2322300.000000   l

inux c function()中關于strtod的范例有誤


strchr
 原型:extern char *strchr(const char *s,char c);   const char *strchr(const char* _Str,int _Val)   char *strchr(char* _Str,int _Ch)   頭文件:#include <string.h>   

功能:查找字符串s中首次出現字符c的位置   說明:返回首次出現c的位置的指針,如果s中不存在c則返回NULL。

C語言函數strrchr
函數簡介
  函數名稱: strrchr   函數原型:char *strrchr(char *str, char c);   所屬庫: string.h   函數功能:查找一個字符c在另一個字符串str中末次出現的位置(也就是從str的右側開始查找字符c首次出現的位置),并返回從字符串中的這個位置起,一直到字符串結束的所有字符。如果未能找到指定字符,那么函數將返回NULL。


strcspn  原型:size_t strcspn(const char *s1,const char *s2);   相關頭文件:#include <string.h>   功能:順序在字符串s1中搜尋與s2中字符的第一個相同字符,返回這個字符在S1中第一次出現的位置。

strpbrk  用法:#include <string.h>   功能:依次檢驗字符串s1中的字符,當被檢驗字符在字符串s2中也包含時,則停止檢驗,并返回該字符位置,空字符NULL不包括在內。   說明:返回s1中第一個滿足條件的字符的指針,如果沒有匹配字符則返回空指針NULL。   用途:在源字符串(s1)中找出最先含有搜索字符串(s2)中任一字符的位置并返回,若找不到則返回空指針。


strpbrk  用法:#include <string.h>   功能:依次檢驗字符串s1中的字符,當被檢驗字符在字符串s2中也包含時,則停止檢驗,并返回該字符位置,空字符NULL不包括在內。   說明:返回s1中第一個滿足條件的字符的指針,如果沒有匹配字符則返回空指針NULL。   用途:在源字符串(s1)中找出最先含有搜索字符串(s2)中任一字符的位置并返回,若找不到則返回空指針。

?

gets  
【1】函數:gets(字符指針)   
【2】頭文件:stdio.h(c中),c++不需包含此頭文件   
【3】原型:char*gets(char*buffer);   
【4】功能:從stdin流中讀取字符串,直至接受到換行符或EOF時停止,并將讀取的結果存放在buffer指針所指向的字符數組中。換行符不作為讀取串的內容,讀取的換行符被轉換為null值,并由此來結束字符串。   
【5】返回值:讀入成功,返回與參數buffer相同的指針;讀入過程中遇到EOF(End-of-File)或發生錯誤,返回NULL指針。所以在遇到返回值為NULL的情況,要用ferror或feof函數檢查是發生錯誤還是遇到EOF。   
【6】注意:本函數可以無限讀取,不會判斷上限,所以程序員應該確保buffer的空間足夠大,以便在執行讀操作時不發生溢出。如果溢出,多出來的字符將被寫入到堆棧中,這就覆蓋了堆棧原先的內容,破壞一個或多個不相關變量的值,為了避免這種情況,我們可以用fgets()來替換gets()。這個事實導致gets函數只適用于玩具程序。在V7的手冊(1979年)中說明:為了向后兼容,gets刪除換行符,gets并不將換行符存入緩沖區。   
【7】示例:   C:#include "stdio.h" 這個頭文件包涵gets函數   void main()   {   char str1[5];   gets(str1);   printf("%s\n",str1);   }   C++:   #include<iostream>   using namespace std;   int main()   {   char str[100];   gets(str);   cout<<str<<endl;   return 0;   }   gets()函數用來從標準輸入設備(鍵盤)讀取字符串直到換行符結束,但換行符會被丟棄,然后在末尾添加'\0'字符。其調用格式為:   gets(s);   其中s為字符串變量(字符串數組名或字符串指針)。   gets(s)函數與 scanf("%s",&s) 相似,但不完全相同,使用scanf("%s",&s) 函數輸入字符串時存在一個問題,就是如果輸入了空格會認為字符串結束,空格后的字符將作為下一個輸入項處理,但gets()函數將接收輸入的整個字符串直到遇到換行為止。   說明:   gets(s) 函數中的變量s為一字符串或字符指針。如果為單個字符,編譯連接不會有錯誤,但運行后會出現”Null pointer asignment"的錯誤。   
【8】寬字符版本,當使用unicode寬字符文本時,使用這個函數 _getws();

?

getchar

  從stdio流中讀字符,相當于getc(stdin),它從標準輸入里讀取下一個字符。

?

stat結構體
  stat 結構定義于:/usr/include/sys/stat.h 文件中   struct stat finfo;   stat( sFileName, &finfo );   int size = finfo. st_size;   struct stat {   mode_t st_mode; //文件對應的模式,文件,目錄等   ino_t st_ino; //i-node節點號   dev_t st_dev; //設備號碼   dev_t st_rdev; //特殊設備號碼   nlink_t st_nlink; //文件的連接數   uid_t st_uid; //文件所有者   gid_t st_gid; //文件所有者對應的組   off_t st_size; //普通文件,對應的文件字節數   time_t st_atime; //文件最后被訪問的時間   time_t st_mtime; //文件內容最后被修改的時間   time_t st_ctime; //文件狀態(屬性)改變時間   blksize_t st_blksize; //文件內容對應的塊大小   blkcnt_t st_blocks; //文件內容對應的塊數量   };

?

函數名: stat()   功 能: 得到文件的信息,將其保存在buf結構中,buf的地址以參數形式傳遞給stat。   用 法: int _stat(const char *path,struct _stat *buffer)

?

  perror ( )用 來 將 上 一 個 函 數 發 生 錯 誤 的 原 因 輸 出 到 標 準 設備 (stderr) 。參數 s 所指的字符串會先打印出,后面再加上錯誤原因字符串。此錯誤原因依照全局變量error 的值來決定要輸出的字符串。   在庫函數中有個error變量,每個error值對應著以字符串表示的錯誤類型。當你調用"某些"函數出錯時,該函數已經重新設置了error的值。perror函數只是將你輸入的一些信息和現在的error所對應的錯誤一起輸出。
文件操作:
#include <stdio.h>   
int main(void)   
{   FILE *fp ;   
fp = fopen( "/root/noexitfile", "r+" );   
if ( NULL == fp )   
{   perror("/root/noexitfile");  
}   
return 0;   
}
運行結果
  [root@localhost io]# gcc perror.c   
[root@localhost io]# ./a.out   
/root/noexitfile: No such file or directory

?


?

總結

以上是生活随笔為你收集整理的C++控制台读取和输出函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。