Exercise C: Building a simple phonebook application
Apr 03, 2025 pm 08:15 PMOne of the best ways to learn C language programming is to practice it. This article will take you step through a project I recently completed: a simple phone book application. This app demonstrates file processing and basic data management in C, allowing you to add, view, and delete contacts.
Detailed code explanation
Here is the complete code:
<code class="c">#include <stdio.h> #include <string.h> // 函數(shù)聲明void addcontact(char name[], char number[]); void viewcontacts(); void deletecontact(char name[]); int main() { int choice; char name[20]; char number[20]; printf("-- 歡迎使用您的電話簿! -- \n"); do { // 顯示菜單printf("\n您想執(zhí)行什么操作?\n"); printf("1. 創(chuàng)建新聯(lián)系人\t 2. 查看電話簿\t 3. 刪除聯(lián)系人\t 4. 退出\n"); scanf("%d", &choice); switch (choice) { case 1: // 添加新聯(lián)系人printf("很好,讓我們創(chuàng)建一個(gè)新聯(lián)系人:\n"); printf("請輸入聯(lián)系人的姓名:\n"); scanf("%s", name); printf("現(xiàn)在輸入電話號(hào)碼:\n"); scanf("%s", number); addcontact(name, number); break; case 2: // 查看電話簿printf("這是您的電話簿:\n"); viewcontacts(); break; case 3: // 刪除聯(lián)系人printf("請輸入要?jiǎng)h除的聯(lián)系人的姓名:\n"); scanf("%s", name); deletecontact(name); break; } } while (choice != 4); // 循環(huán)直到用戶選擇“退出” return 0; } // 向電話簿添加聯(lián)系人的函數(shù)void addcontact(char name[], char number[]) { FILE *pfile; pfile = fopen("phonebook.txt", "a"); if (pfile == NULL) { printf("打開電話簿失敗。"); return; } fprintf(pfile, "姓名: %s \t 電話: %s\n", name, number); printf("聯(lián)系人已創(chuàng)建!\n"); fclose(pfile); } // 查看電話簿中所有聯(lián)系人的函數(shù)void viewcontacts() { char filecontent[200]; FILE *pfile; pfile = fopen("phonebook.txt", "r"); while (fgets(filecontent, sizeof(filecontent), pfile)) { printf("\n%s", filecontent); } fclose(pfile); } // 從電話簿中刪除聯(lián)系人的函數(shù)void deletecontact(char name[]) { FILE *pfile, *ptrash; char line[200], contactname[20], contactnumber[20]; pfile = fopen("phonebook.txt", "r"); ptrash = fopen("trash.txt", "w"); if (pfile == NULL || ptrash == NULL) { printf("打開文件失敗。"); return; } while (fgets(line, sizeof(line), pfile)) { sscanf(line, "姓名: %s \t 電話: %s\n", contactname, contactnumber); if (strcmp(name, contactname) != 0) { fputs(line, ptrash); } } fclose(pfile); fclose(ptrash); // 將舊電話簿替換為更新后的版本remove("phonebook.txt"); rename("trash.txt", "phonebook.txt"); printf("聯(lián)系人已刪除。"); }</string.h></stdio.h></code>
Project Features
This program implements three core functions:
- Add a contact:
- Allows users to enter their name and phone number.
- Store contact information in a file named
phonebook.txt
.
- View contact:
- Read and display all contact information stored in the
phonebook.txt
file.
- Read and display all contact information stored in the
- Delete a contact:
- Delete the contact based on the name entered by the user.
- Filter out deleted contacts by creating temporary files and replace the original files.
Learning gains
Through this exercise, I consolidated the following C language knowledge:
- File processing: Proficient in using
fopen
,fclose
and other file operation functions, and handle the failure of file opening. - String operation: Use functions such as
strcmp
andsscanf
to compare and parse strings. - Basic Data Management: Learn how to store and manage data in simple text files, and update file content by creating temporary files.
Code Testing
- Copy the code into a
.c
file (e.g.phonebook.c
) and compile with a C compiler (e.g. GCC):
<code class="bash">gcc -o phonebook phonebook.c</code>
- Run the compiled program:
<code class="bash">./phonebook</code>
- Follow the on-screen prompts to add, view, or delete contacts.
- Open the
phonebook.txt
file to verify that the data is stored correctly.
Future improvements
This program is a good start and the following improvements can be considered in the future:
- Enter Verification: Verify the validity of the phone number (for example, including only numbers) to prevent duplicate names.
- User interface improvement: Provides clearer prompts, allowing input of names containing multiple words (using
fgets
instead ofscanf
). - Enhanced file processing: Consider data encryption for improved security, using more structured file formats such as CSV or JSON.
- Advanced Features: Add search function to sort contacts alphabetically.
Summarize
This exercise helped me understand the C language file processing and basic data management in the basics. This is a simple but practical program that can serve as the basis for more complex projects. If you are a beginner in C language, you highly recommend giving it a try! This is an interesting and rewarding learning process.
The above is the detailed content of Exercise C: Building a simple phonebook application. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Ethereum is a decentralized application platform based on smart contracts, and its native token ETH can be obtained in a variety of ways. 1. Register an account through centralized platforms such as Binance and Ouyiok, complete KYC certification and purchase ETH with stablecoins; 2. Connect to digital storage through decentralized platforms, and directly exchange ETH with stablecoins or other tokens; 3. Participate in network pledge, and you can choose independent pledge (requires 32 ETH), liquid pledge services or one-click pledge on the centralized platform to obtain rewards; 4. Earn ETH by providing services to Web3 projects, completing tasks or obtaining airdrops. It is recommended that beginners start from mainstream centralized platforms, gradually transition to decentralized methods, and always attach importance to asset security and independent research, to

The most suitable tools for querying stablecoin markets in 2025 are: 1. Binance, with authoritative data and rich trading pairs, and integrated TradingView charts suitable for technical analysis; 2. Ouyi, with clear interface and strong functional integration, and supports one-stop operation of Web3 accounts and DeFi; 3. CoinMarketCap, with many currencies, and the stablecoin sector can view market value rankings and deans; 4. CoinGecko, with comprehensive data dimensions, provides trust scores and community activity indicators, and has a neutral position; 5. Huobi (HTX), with stable market conditions and friendly operations, suitable for mainstream asset inquiries; 6. Gate.io, with the fastest collection of new coins and niche currencies, and is the first choice for projects to explore potential; 7. Tra

The real use of battle royale in the dual currency system has not yet happened. Conclusion In August 2023, the MakerDAO ecological lending protocol Spark gave an annualized return of $DAI8%. Then Sun Chi entered in batches, investing a total of 230,000 $stETH, accounting for more than 15% of Spark's deposits, forcing MakerDAO to make an emergency proposal to lower the interest rate to 5%. MakerDAO's original intention was to "subsidize" the usage rate of $DAI, almost becoming Justin Sun's Solo Yield. July 2025, Ethe

What is Treehouse(TREE)? How does Treehouse (TREE) work? Treehouse Products tETHDOR - Decentralized Quotation Rate GoNuts Points System Treehouse Highlights TREE Tokens and Token Economics Overview of the Third Quarter of 2025 Roadmap Development Team, Investors and Partners Treehouse Founding Team Investment Fund Partner Summary As DeFi continues to expand, the demand for fixed income products is growing, and its role is similar to the role of bonds in traditional financial markets. However, building on blockchain

Table of Contents Crypto Market Panoramic Nugget Popular Token VINEVine (114.79%, Circular Market Value of US$144 million) ZORAZora (16.46%, Circular Market Value of US$290 million) NAVXNAVIProtocol (10.36%, Circular Market Value of US$35.7624 million) Alpha interprets the NFT sales on Ethereum chain in the past seven days, and CryptoPunks ranked first in the decentralized prover network Succinct launched the Succinct Foundation, which may be the token TGE

Domestic purchase of Bitcoin must be carried out through compliance channels, such as Hong Kong licensed exchanges or international compliance platforms; 2. Complete real-name authentication after registration, submit ID documents and address proof and perform facial recognition; 3. Prepare legal currency and recharge it to the trading account through bank transfer or electronic payment; 4. Log in to the platform to select Bitcoin trading pairs, set limit orders or market orders to complete the transaction; 5. Pay attention to market fluctuations and platform security, enable dual certification and comply with domestic regulatory policies; overall, investors should operate cautiously under the premise of compliance and participate in Bitcoin investment rationally.

A verbal battle about the value of "creator tokens" swept across the crypto social circle. Base and Solana's two major public chain helmsmans had a rare head-on confrontation, and a fierce debate around ZORA and Pump.fun instantly ignited the discussion craze on CryptoTwitter. Where did this gunpowder-filled confrontation come from? Let's find out. Controversy broke out: The fuse of Sterling Crispin's attack on Zora was DelComplex researcher Sterling Crispin publicly bombarded Zora on social platforms. Zora is a social protocol on the Base chain, focusing on tokenizing user homepage and content

The Hong Kong government restarted the "Capital Investor Entry Plan", and for the first time included cryptocurrencies in the investment scope, clearly attracting high-net-worth individuals around the world with the investment threshold of HK$30 million; of which HK$3 million must be invested in the Innovation and Technology Investment Portfolio, and HK$27 million can be used to invest in stocks, bonds, funds, non-residential real estate or virtual assets; 1. Applicants can invest all HK$27 million in cryptocurrencies traded on platforms such as Ethereum and the Hong Kong Securities Regulatory Commission; 2. The typical combination is HK$27 million Ethereum plus HK$3 million Innovation and Technology Investment, meeting the application conditions; this move marks Hong Kong's active construction of Web3 and virtual asset centers to promote the digital economy and talent aggregation.
