C語言|文件指針、fopen()、fscanf()、fclose()

2020-12-27 菜鳥的計算機學習筆記

這是一個簡單的文件系統

fscanf()函數的功能是把磁碟文件數據讀出保存到變量(內存)

每一個文件都有自己的FILE結構和文件緩衝區

exit(0)是系統標準函數,作用是關閉所有打開的文件,並終止程序的執行。參數0表示程序正常結束,非0參數通常表示不正常的程序結束

C語言允許同時打開多個文件,不同文件採用不同文件指針指示,但不允許同一個文件在關閉前被再次打開

如圖所示,fgets()函數用來從文本文件中讀取字符串,調用格式為:fgets(s,n,fp);

其中s可以是字符數組名或字符指針(指向字符串的指針),用該函數接收的字符串就放在s裡面

n是指定讀入的字符個數,函數被調用時,最多讀入n-1個字符,並將讀入的字符串存入指針s所指向內存開始的n-1個連續的內存單元中。當函數讀入的字符達到指定的個數,或接收到換行符,或接收到文件結束標誌EOF時,將在讀取的字符後面自動添加一個『\0』字符;若有換行符,則將換行符保留(換行符在』\0』字符之前);若有EOF,則不保留EOF。該函數如果執行成功,返回讀取的字符串;如果失敗,則返回空指針,這時,s的內容不確定

如圖所示fputs()函數的作用是把一個字符串寫道fp所指示的磁碟文件上,返回值若寫文件成功則為temp,若寫文件失敗則為EOF

用此函數的時候,文件打開類型不能是「r」,應為對應的打開類型,否則字符串寫不進去

fscanf()函數是格式化寫函數,可以把各種類型的變量寫入文件中

相關焦點

  • C語言基礎知識
    C 傳遞指針給函數通過傳遞指針給函數,可以直接修改原參數(實參),而不是引用實參到形參。pow(x, y)函數C 和 Python 語言的 pow(x, y) 方法都是用於返回 (x 的 y 次方) 的值,C 語言中其原型為:double pow(double x, double y)。
  • 入門C語言中的數組,字符串常量與指針
    int q[3] = ; 要聲明對另一個文件中定義的數組的外部引用,請使用extern int a[]; 字符串常量 在C語言中,類型數組char用於表示字符串,字符串的結尾由設置為0的字節標記(也稱為NUL字符)
  • c語言中malloc申請的空間和直接定義變量申請的空間有什麼區別?
    在c語言中,malloc函數原型為void*malloc(unsignedintslong),其作用是在內存的動態存儲區中分配一個長度為slong的連續空間。次函數的返回值是分配區域的起始地址,如:char*p;p=malloc(64000);//空間不夠指針為null。如果用數組定義:charp[64000],表示的是聲明了一個數組,此數組的大小64000個字節。
  • C語言編程核心要點
    類型C是強類型語言,有short、long、int、char、float、double等build-in數據類型,類型是貫穿c語言整個課程的核心概念。struct、union、enum屬於c的構造類型,用於自定義類型,擴充類型系統。變量變量用來保存數據,數據是操作的對象,變量的變字意味著它可以在運行時被修改。
  • 「C語言從入門到入土」必備C語言基礎筆記整理
    一、C語言1、什麼是C語言?C語言是人寫機器看的一種語言。C語言是高級語言中的低級語言。C語言貼近硬體。C語言的入門學習比較簡單。彙編語言——>B語言——>C語言2、C語言的特性首先C語言就是你的女朋友。
  • 想替代 C 的 Zig 語言成立了基金會
    Today, I am proud to announce the Zig Software Foundation, a 501(c)(3) not-for-profit corporation, dedicated to promoting, protecting, and advancing the Zig programming language
  • 第四篇:C語言中指針與字符串核心知識點梳理
    這就涉及到本文要講到的第一個核心概念:指針。重點包括:指針處理一維數組、動態內存分配等。C語言的基本數據類型中有一個char的關鍵詞,可以存儲單個的字符。那麼,像漢字以及由多個字符組成的內容,又該如何存儲呢?
  • 2016年10月成人自考高級語言程序設計一考試真題
    點擊查看:全國自考00342高級語言程序設計歷年真題及部分答案匯總 一、單項選擇題(本大題共15小題,每小題2分。共30分)在每小題列出的四個備選項中只有一個是符合題目要求的,請將其選出並將「答題卡」的相應代碼塗黑。錯塗、多塗或未塗均無分。
  • 第六篇:C語言中結構體與文件操作相關知識點梳理
    前面總結過,C語言中的基本數據類型有四種,分別是整型、浮點型和字符型;後面又講到可以保存字符串的字符數組。但這遠遠不夠實際應用的需要。在C語言中結構體是對數據類型的無限擴展。程式設計師可以根據需要定義各種各樣的數據類型,即:結構體。問題二:數據無法永久保存前面我們編寫運行的所有C語言程序,或多或少都會輸入一些數據。
  • 2010年10月成人自考高級語言程序設計一考試真題
    點擊查看:全國自考00342高級語言程序設計歷年真題及部分答案匯總 一、單項選擇題(本大題共15小題,每小題2分,共30分)在每小題列出的四個備選項中只有一個是符合題目要求的,請將其代碼填寫在題後的括號內。錯選、多選或未選均無分。
  • C語言新增stdint.h頭文件的討論什麼是快類型什麼是小類型
    本文轉載自【微信公眾號:雲深之無跡,ID:TT1827652464】經微信公眾號授權轉載,如需轉載與原文作者聯繫雖說C語言是一門很成熟的程式語言,但是近些年來也是有所發展的,從早期的C89到後來的C99、C11等新標準,C語言逐步增加了許多好用的功能,例如新標準頭文件「stdint.h」的添加。
  • C語言基礎(下)
    C語言的世界結構體類型什麼是結構體我們觀察現實世界的時候,可以發現很多的東西它都是由不同的部分組合起來的使用示例#include <stdio.h>#include<string.h>struct Student{char * name;};int main(){struct Student stu[2];stu[0] = (struct Student){"泱澈"};printf("%s\n", stu[0].name);return 0;}結構體指針
  • 【揭秘】C語言類型轉換時發生了什麼?
    在C語言中,數據類型指的是用於聲明不同類型的變量或函數的一個廣泛的系統,我們常用的算術類型包括兩種類型:整數類型和浮點類型。那麼相互之間具體是怎麼轉化的呢?; //定義基本的數據的類型 char c; short s; int i; long l; float f; double d; //將整型浮點型數據賦值給指針類型 pPoint = c; pPoint = s; pPoint = i; pPoint = l;
  • C ++ 11 兩種改進得數據類型,空指針與強類型枚舉
    前向聲明通常是關於磁碟上代碼的物理布局到不同文件中,或者提供不透明對象作為API的一部分。在第一種情況下,您關心物理磁碟布局,使用轉發聲明允許您在將特定值放入cpp文件時在頭文件中聲明枚舉類型。這使您可以非常頻繁地更改可能的枚舉值列表,而無需強制重新編譯所有相關文件。在第二種情況下,枚舉類可以作為類型安全公開,但從一個API函數返回的其他不透明值將傳遞到另一個API函數。
  • 存在可能替代C語言的其他語言嗎?
    儘管C程式語言早在1972年就已發布,但它仍是當今使用最廣泛的語言之一,並且按照當今的標準存在許多限制和缺陷。 這就是為什麼應該替換C的關鍵原因。太多關鍵軟體都是用C / C ++編寫的,其含義廣泛。一個示例是OpenSSL之類的庫中的錯誤。
  • C語言怎麼樣?今天聊聊C語言的發展史!
    4.1 PDP-Unix PDP-Unix系統內核代碼文件 可以看到基本都是用彙編寫的(文件名後綴.s)。為什麼用基本這個詞呢?因為,在系統裡面有一部分命令是用B語言寫的。
  • C語言函數調用過程中的內存變化解析
    相信很多編程新手村的同學們都會有一個疑問:C 語言如何調用函數的呢?這個調用不是指C 語言上的函數調用的語法,而是在內存的視角下,函數的調用過程。本文將從C 語言調用實例,內存視角,反彙編代碼來探討C 語言函數的調用過程,也可以說是C 語言函數調用過程圖解。通過這個C 語言函數調用過程圖解,同學們將會知道,C 語言函數在調用時,內存空間是怎樣變化的。 要想理解這一個過程還好涉及到函數棧幀的概念。
  • R語言中使用scan函數讀取文件中的數據
    要讀取的文本文件中的數據可以使用下面的語句從該文件中讀取出數據:(1)scan("student.txt", what="c") #以字符串的格式讀取數據(2)scan("student.txt", what="c", nlines=3) #讀取3行(3)scan("student.txt", what="c", skip=1) #忽略第1行以上的執行情況如下圖所示: