我正在做一些功课,想知道是否存在太多嵌套while循环的东西.嵌套几个while循环有缺点吗?如果是这样,我将如何重构下面的代码片段?
下面是一次读取一行文件的代码,解析由某些定义的分隔符分隔的字段,并在打印到控制台之前删除前导空格.
// Read the file one line at a time
while (fgets(lineStr, MAXLINELENGTH, fp) != NULL)
{
charPtr = strtok(lineStr, DELIMITERS);
// Loop until line is parsed
while (charPtr != NULL)
{
// Skip past leading whitespace
while (isspace(*charPtr))
charPtr++;
puts(charPtr);
charPtr = strtok(NULL, DELIMITERS);
}
}
Run Code Online (Sandbox Code Playgroud) 我想将 ws2_32.lib 包含到我的应用程序中,但 CMake 会附加-l到项目属性。
...
add_executable(Executive ${exec_src})
target_link_libraries(Executive ws2_32)
Run Code Online (Sandbox Code Playgroud)
这就是我的 CMakeLists.txt 文件的样子,但是当我检查“输入”下的 VS2010 链接器属性页面时,它列出了-lws2_32.lib. 为什么要加上-l? 我怎样才能删除它,因为一旦我手动将其更改为读取ws2_32.lib该项目就能够正确链接。
我尝试了以下操作:
find_library(WIN_C ws2_32)但结果是NOTFOUND。
我目前正在学习C,并想知道以下两段代码是否表现不同,或者它是否只是一种风格的东西.
看一些来源,他们有以下代码:
...
FILE * pFile;
pFile = fopen ("myfile.txt","r");
if (pFile == NULL)
{ some code }
...
Run Code Online (Sandbox Code Playgroud)
虽然我的教授在他的笔记中有以下代码:
...
FILE * pFile
if ((pFile = fopen("myfile.txt","r")) == NULL)
{ some code }
...
Run Code Online (Sandbox Code Playgroud)
只是想知道这不仅仅是不同程序员的风格偏好,还是将返回/设置行放在if statmeent中的优势.