只是想知道,因爲下面的代碼的代碼片段C:獲得d_name的第一個字符
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
void do_ls(char []);
main(int ac, char *av[])
{
if (ac == 1)
do_ls(".");
else
while (--ac){
printf("%s:\n", *++av);
do_ls(*av);
}
}
void do_ls(char dirname[])
{
DIR *dir_ptr; /* the directory */
struct dirent *direntp; /* each entry */
if ((dir_ptr = opendir(dirname)) == NULL)
fprintf(stderr,"ls1: cannot open %s\n", dirname);
else
{
while ((direntp = readdir(dir_ptr)) != NULL)
printf("%s\n", direntp->d_name[0]);
closedir(dir_ptr);
}
}
而不是讓每個條目,如何獲取每個條目的特定字符(例如全名名字中的第一個字符)而不是全名。在代碼中,我試圖使用direntp->d_name[0]
,但它沒有奏效。
任何幫助/提示將不勝感激。
編譯器不會在這裏提示你不好:'printf(「%s \ n」,direntp-> d_name [0]);'? – alk